IT/SQL
[MySQL] 프로그래머스 - 헤비 유저가 소유한 장소
무지개는 환상
2024. 1. 24. 09:55
<PLACES> 테이블 구조
<문제>
<문제 풀이>
SELECT *
FROM PLACES
WHERE HOST_ID in
(SELECT HOST_ID
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(HOST_ID) >= 2)
ORDER BY ID
WHERE COUNT(HOST_ID) >= 2 만 있는 3줄짜리 SQL 문으로 간단하게 생각이 들었으나
생각해보니 그러면 'PLACES 테이블에서 host_id 컬럼의 count 값이 2 이상이면 모든걸 다 출력해줘' 가 되는 상황이었다.
이래서 집계함수 (count 함수 같은) 는 where 절에 쓸 경우 group 절을 사용해야 하는구나 를 다시 한번 느꼈다!
그래서 where 절에 GROUP 과 HAVING을 사용한 서브쿼리를 사용하였다.
* 집계 함수 : SUM() , COUNT(), MIN(), MAX() 함수 같은 통계관련 함수