알고리즘 문제풀이/프로그래머스

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

노력의천재 2021. 10. 7. 14:09

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

 

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

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

programmers.co.kr

해커랭크의 SQL 문제는 어렵던데,,, 이건 너무 쉬워서 당황했다. 다음 데브매칭에도 이렇게 쉽게 나오면 좋겠다.

일단 헤비 유저인 HOST_ID를 먼저 구해야하기 때문에 아래와 같이 코드를 작성했다.

 

SELECT HOST_ID
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(HOST_ID) >= 2

 

그 다음 해당 HOST_ID를 갖고 있는 row를 전부 출력해주면 쉽게 해결할 수 있는 문제이다. 즉, 집계함수와 서브쿼리를 이용하는 문제였다.

 

SELECT ID, NAME, HOST_ID
FROM PLACES
WHERE HOST_ID IN (SELECT HOST_ID
                  FROM PLACES
                  GROUP BY HOST_ID
                  HAVING COUNT(HOST_ID) >= 2) 
ORDER BY ID;