TIL/SQL

프로그래머스| 헤비 유저가 소유한 장소(My SQL)

jojoon2786 2024. 7. 31. 19:56

문제설명

처음 작성한 코드

select id, name, host_id
from (select *
from places
group by host_id
having count(*) >= 2) as a
order by id

 

오류 발생 이유는 group by host_id로 인해 having절을 만족하는 host_id에 대한 행 총 두개만 출력이 된다.

원하는 쿼리는 조건을 만족하는 host_id가 가진 모든 공간 정보가 나와야 하기에 where절에 서브쿼리를 사용해야 한다.

 

나의 풀이)

select id, name, host_id
from places
where host_id in (select host_id
from places
group by host_id
having count(*) >= 2)
order by id

where 절에 서브쿼리를 사용하여 조건에 맞는 host_id 에 대해 전체 테이블에서 가져오도록 하였다.

^ㅁ^