조앤의 기술블로그

[프로그래머스 / SQL] 헤비 유저가 소유한 장소 (Oracle) 본문

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;