반응형
츄르사려고 코딩하는집사입니다.
1. [프로그래머스/SQL] 헤비 유저가 소유한 장소 오라클(Oracle)
2. 문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/77487
3. 문제
PLACES 테이블은 공간 임대 서비스에 등록된 공간의 정보를 담은 테이블입니다. PLACES 테이블의 구조는 다음과 같으며 ID, NAME, HOST_ID는 각각 공간의 아이디, 이름, 공간을 소유한 유저의 아이디를 나타냅니다. ID는 기본키입니다.
NAMETYPE
ID | INT |
NAME | VARCHAR |
HOST_ID | INT |
문제
이 서비스에서는 공간을 둘 이상 등록한 사람을 "헤비 유저"라고 부릅니다. 헤비 유저가 등록한 공간의 정보를 아이디 순으로 조회하는 SQL문을 작성해주세요.
예시
예를 들어, PLACES 테이블이 다음과 같다면
IDNAMEHOST_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 |
22868779 | ★ Fresh Fitzroy Pad with City Views! ★ | 21058208 |
- 760849번 유저는 공간을 3개 등록했으므로 이 유저는 헤비유저입니다.
- 30900122번 유저는 공간을 2개 등록했으므로 이 유저는 헤비유저입니다.
- 21058208번 유저는 공간을 1개 등록했으므로 이 유저는 헤비유저가 아닙니다.
따라서 SQL 문을 실행하면 다음과 같이 나와야 합니다.
IDNAMEHOST_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 |
4. 풀이
- 간단한 GROUP BY 문제다.
- PLACES 테이블에서, 2개 이상의 룸을 빌린 사람의 데이터를 가져올건데, GROUP BY를 통해 HAVING절을 COUNT(*) >= 2 이상인 HOST_ID를 가져와서 WHERE IN 절에 넣어서 ID를 기준으로 정렬하면 된다.
5. 소스 코드
SELECT ID
, NAME
, HOST_ID
FROM PLACES
WHERE HOST_ID IN (
SELECT HOST_ID
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(*) >= 2
)
ORDER BY ID
반응형
'알고리즘 > 프로그래머스SQL' 카테고리의 다른 글
[프로그래머스/SQL] 없어진 기록 찾기 오라클(Oracle) (0) | 2022.10.18 |
---|---|
[프로그래머스/SQL] 보호소에서 중성화한 동물 오라클(Oracle) (0) | 2022.10.18 |
[프로그래머스/SQL] 입양 시각 구하기(1) 오라클(Oracle) (0) | 2022.10.17 |
[프로그래머스/SQL] 우유와 요거트가 담긴 장바구니 오라클(Oracle) (0) | 2022.10.15 |
[프로그래머스/SQL] 나이 정보가 없는 회원 수 구하기 오라클(Oracle) (0) | 2022.10.15 |
[프로그래머스/SQL] 3월에 태어난 여성 회원 목록 출력하기 오라클(Oracle) (0) | 2022.10.15 |
[프로그래머스/SQL] 식품분류별 가장 비싼 식품의 정보 조회하기 오라클(Oracle) (0) | 2022.10.15 |
[프로그래머스/SQL] 조건에 맞는 회원수 구하기 오라클(Oracle) (0) | 2022.10.14 |
최근댓글