코딩테스트/SQL 문제

[프로그래머스] 77487 헤비 유저가 소유한 장소 - SQL

glorypang 2025. 4. 23. 17:06
728x90
반응형
SMALL

📌 문제 정보

  • 출처: 문제 링크
  • 난이도: ⭐ ⭐
  • 문제 유형: 2021 Dev-Matching: 웹 백엔드 개발자(상반기)
  • 사용 언어: SQL

🔍 문제 설명

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

 

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


💡 풀이 노트

 

  • 두 곳 이상 등록한 호스트모든 장소 정보를 조회
  • 이를 위해 두 단계로 접근:
    1. `GROUP BY HOST_ID`로 호스트별 등록 건수를 계산
    2. `HAVING COUNT(HOST_ID) >= 2`로 두 건 이상 등록한 호스트만 추림
    3. 바깥 쿼리에서` IN (서브쿼리)` 조건으로 그 호스트들의 장소 정보만 조회

 

서브쿼리 결과

HOST_ID COUNT(*)
760849 3 ✅
30900122 2 ✅
21058208
1 ❌ (제외)

 


🚀 코드 (SQL)

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;

🖥 실행 결과

입력 & 출력
ID		NAME						HOST_ID
4431977		BOUTIQUE STAYS - Somerset Terrace, Pet Friendly	760849
5194998		BOUTIQUE STAYS - Elwood Beaches 3, Pet Friendly	760849
16045624	Urban Jungle in the Heart of Melbourne		30900122
17810814	Stylish Bayside Retreat with a Luscious Garden	760849
22740286	FREE PARKING - The Velvet Lux in Melbourne CBD	30900122

📌 깃허브 코드 저장소: https://github.com/glorypang/CodingTest

728x90
반응형
LIST