헤비 유저가 소유한 장소

수이·5일 전
0

🟢 코드카타 / SQL

목록 보기
64/71

이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부릅니다. 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성해주세요.
문제링크

조건정리

  1. "헤비 유저" 뽑기
  2. 헤비 유저가 등록한 공간의 정보 조회
  3. 아이디 순 정렬

풀이
나는 이런 종류의 문제가 항상 너무 헷갈리는 것 같은데, 맨날 이런식으로 쿼리를 작성하게 되기 때문이다

-- 오답
SELECT *
FROM PLACES 
GROUP BY HOST_ID
HAVING COUNT(HOST_ID) >= 2
ORDER BY ID 

‼️이렇게 풀면 안되는 이유

"헤비 유저"의 아이디만 구한 거기 때문에, 거기에 해당하는 룸 전체를 보는 게 아니라 룸 하나만 보임(groupby 했으니까) > host_id당 1줄

헤비 유저의 "방 리스트"를 보는 게 중점이기때문에 WHERE 절에서 JOIN을 하든, CTE를 쓰든 해야함

WITH cnt AS(
    SELECT HOST_ID
    FROM PLACES
    GROUP BY HOST_ID
    HAVING COUNT(*) >= 2)
SELECT p.*
FROM PLACES p
INNER JOIN cnt c ON c.HOST_ID = p.HOST_ID 
ORDER BY p.ID

0개의 댓글

관련 채용 정보