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)
[참고 블로그]
'프로그래머스' 카테고리의 다른 글
[프로그래머스] mysql Datetime 타입 컬럼 값 String 으로 형식 지정하기 (1) | 2022.09.25 |
---|---|
[프로그래머스] mysql 중성화 여부 파악하기 (0) | 2022.09.21 |
[프로그래머스] (mysql) 어린 동물 찾기 (0) | 2022.09.19 |
[프로그래머스] (mysql) 상위 n개 레코드 (1) | 2022.09.19 |
[프로그래머스] (mysql) 여러 기준으로 정렬하기 (1) | 2022.09.19 |