본문 바로가기
프로그래머스

[프로그래머스] 헤비 유저가 소유한 장소

by 소금_msg 2022. 9. 16.

 

SELECT * FROM PLACES WHERE HOST_ID IN
( SELECT HOST_ID FROM PLACES GROUP BY HOST_ID HAVING COUNT(*) > 1) ORDER BY ID;

 

처음에 GROUP BY 를 사용해서 묶었는데

 

SELECT * FROM places GROUP BY host_id HAVING COUNT(*) > 1 이렇게 짰었는데

그렇게 되면 host_id가 2개 이상인 결과를 1개만 불러오는 것이었다..

 

중복된 결과까지 모두 나와야해서 

SELECT문의 조건절을 host_id를 IN 으로 추가해주고

해당 조건문의 검색 내용에 서브쿼리로 GROUP BY 로 host_id를 묶어주고 중복값이 2개 이상이라는 조건절 HAVING 을 추가해주자.

ORDER BY ID순으로 정렬해주면 끝.

 

 

[중복데이터 추출]

SELECT * FROM 테이블 WHERE 검색할 필드 IN ( SELECT 검색할 필드 FROM 테이블 GROUP BY 검색할 필드 HAVING COUNT(*) > n)

[참고 블로그]

http://funyphp.com/archive/mysql/18