헤비 유저가 소유한 장소
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 내 풀이
- GROUP BY + JOIN
- HOST_ID 로 그룹핑한 값이 2개 이상인 사람을 구해서
- 해당 사람의 모든 공간을 출력하도록 함
SELECT P1.ID, P1.NAME, P1.HOST_ID
FROM PLACES P1
JOIN (SELECT *
FROM PLACES
GROUP BY 3
HAVING COUNT(*)>1) AS P2
ON P1.HOST_ID = P2.HOST_ID
ORDER BY 1 ASC
- 다른 사람 풀이
- GROUP BY + IN
- IN 절은 해당 조건 내의 모든 값을 확인
- ⇒ 실제 존재하는 데이터들의 모든 값까지 확인
SELECT * FROM PLACES
WHERE HOST_ID IN(
SELECT HOST_ID FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(ID) >= 2
)
ORDER BY ID ASC;
- GROUP BY + EXISTS
- EXISTS : 해당 값이 존재하는 가에 대한 여부만을 판별
- P1.HOST_ID가 PLACES 테이블 안에 존재하는지만 확인
- 리스트 전체를 만드는 게 아니라, 찾자마자 TRUE면 바로 탈출
- EXISTS : 해당 값이 존재하는 가에 대한 여부만을 판별
SELECT *
FROM PLACES P1
WHERE EXISTS (
SELECT 1
FROM PLACES P2
WHERE P1.HOST_ID = P2.HOST_ID
GROUP BY P2.HOST_ID
HAVING COUNT(*) >= 2
)
'코딩테스트 > SQL' 카테고리의 다른 글
| [SQL][GROUP BY][IN] 식품분류별 가장 비싼 식품의 정보 조회하기 (0) | 2025.04.25 |
|---|---|
| [SQL] 보호소에서 중성화한 동물 (0) | 2025.04.25 |
| [SQL] 분기별 분화된 대장균의 개체 수 구하기 (0) | 2025.04.16 |
| [SQL][ISNULL, IN] 업그레이드 할 수 없는 아이템 구하기 (0) | 2024.11.15 |
| [SQL][CASE-WHEN, MONTH] 분기별 분화된 대장균의 개체 수 구하기 (0) | 2024.11.01 |