문제풀이/프로그래머스

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

Hyeon-Uk 2021. 5. 11. 11:50
반응형

programmers.co.kr/learn/courses/30/lessons/77487

 

코딩테스트 연습 - 헤비 유저가 소유한 장소

PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를

programmers.co.kr


 

-풀이-

먼저 서브쿼리로 2개이상의 장소를 가지고있는 host_id를 찾아낼 쿼리가 필요하다.

이를 GROUP BY HOST_ID 로 묶어줬으며, HAVING을 이용하여 COUNT(*)이 2이상인 조건을 이용하여 HOST_ID를 찾아냈다.

select host_id from places group by host_id having count(*)>=2

 

이 서브쿼리는 그럼 2개이상의 장소를 소유한 HOST_ID를 가지고 있으므로,  PLACES에서 HOST_ID가 위의 쿼리안에 포함되어있으면 출력하면 되므로

select * from places where host_id in (sub query);

가 된다. 서브쿼리( 장소를 2개이상 가지고있는 host_id) 안에 포함되어있는 host의 ID,NAME,HOST_ID를 출력해주면 된다.

 

-코드-

select * from places where host_id in (select host_id from places group by host_id having count(*)>=2);

 

반응형