https://school.programmers.co.kr/learn/courses/30/lessons/77487
코딩테스트 연습 > 2021 Dev-Matching: 웹 백엔드 개발자(상반기) > 헤비 유저가 소유한 장소
문제 분석
난이도: LEVEL3
문제 요구사항
이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부릅니다.
헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성해주세요.
정답 코드1
WITH HEAVY_USER AS (
SELECT HOST_ID, COUNT(*) COUNT
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT >= 2
)
SELECT ID, NAME, HOST_ID
FROM PLACES
WHERE HOST_ID IN (SELECT HOST_ID
FROM HEAVY_USER)
ORDER BY 1
CTE를 통해서 먼저 헤비 유저를 구한다.
PLACES 테이블에서 HOST_ID 가 헤비 유저인 공간 정보를 공간 ID를 기준으로 오름차순 정렬하여 보여준다.
정답 코드2
SELECT ID, NAME, P.HOST_ID
FROM PLACES P JOIN (SELECT HOST_ID, COUNT(*) COUNT
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT >= 2) H
ON P.HOST_ID = H.HOST_ID
ORDER BY 1
FROM 절에서 서브쿼리를 통해 공간을 2개이상 가지는 헤비유저를 구하고
유저의 HOST_ID를 통해 PLACES 테이블과 조인을 하고 정보를 출력한다.
'Algorithm > Programmers SQL' 카테고리의 다른 글
[MySQL] 프로그래머스 오랜 기간 보호한 동물(1) (0) | 2024.09.16 |
---|---|
[MySQL] 프로그래머스 오랜 기간 보호한 동물(2) (0) | 2024.09.16 |
[MySQL] 프로그래머스 조건별로 분류하여 주문상태 출력하기 (0) | 2024.09.16 |
[MySQL] 프로그래머스 즐겨찾기가 가장 많은 식당 정보 출력하기 (0) | 2024.09.16 |
[MySQL] 프로그래머스 카테고리 별 도서 판매량 집계하기 (1) | 2024.09.16 |