cs

https://programmers.co.kr/learn/challenges

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

SQL 문제가 거의 없는줄 알았는데, 아직 풀어 보지 못했던 문제가 몇개 있었다. 

 

바로 풀어보자. 


문제 설명

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

 


[My Answer]

select 
ID, NAME, HOST_ID
from PLACES
where HOST_ID in
    (select host_id from PLACES group by host_id having count(*) > 1)
order by id

다른 방법으로 하는건 잘 생각이 안났고.. 그냥 간단히 중복되는거를 제거한 테이블을 where 절에 서브쿼리로 넣어주고 뽑았다. 

 

 

SQL문제 사이트중에서 환경은 가장 좋은것 같은데, 너무 SQL쪽이 없어서 좀 아쉽다 

'Code Problems > SQL_Programmers' 카테고리의 다른 글

[Programmers] 우유와 요거트가 담긴 장바구니  (0) 2022.02.01
[Programmers] String, Date  (0) 2021.10.30
[Programmers] JOIN  (0) 2021.10.28
[Programmers] IS NULL  (0) 2021.10.28
[Programmers] GROUP BY  (0) 2021.10.27

+ Recent posts