Programming/프로그래머스
[프로그래머스 / SQL] 헤비 유저가 소유한 장소 (Oracle)
쬬앤
2021. 7. 1. 14:54
[문제 설명]
https://programmers.co.kr/learn/courses/30/lessons/77487
코딩테스트 연습 - 헤비 유저가 소유한 장소
PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를
programmers.co.kr
테이블 - PLACES
ID - 공간의 기본키 (PK)
NAME - 공간의 이름
HOST_ID - 공간을 소유한 유저의 아이디
서비스에서 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 한다.
"헤비 유저"가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성하자.
[접근법 & 해설]
1. HOST_ID를 GROUP BY로 해서 헤비 유저를 구분해야겠다고 생각했다.
-> GROUP BY 사용법을 잘 몰랐다. 쿼리에서 많이 보긴 했는데 HAVING을 잘 몰라서 검색의 도움을 받았다.
2. 그 HOST_ID의 유저가 등록한 공간을 SELECT 하자 생각해서 WHERE~IN 절을 생각했다.
3. 아이디 순으로 -> ORDER BY ID
[쿼리]
SELECT ID, NAME, HOST_ID
FROM PLACES
WHERE HOST_ID IN
(SELECT HOST_ID
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(ID) > 1)
ORDER BY ID;