프로그래머스
[프로그래머스] 헤비 유저가 소유한 장소
소금_msg
2022. 9. 16. 16:14
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)
[참고 블로그]