Algorithm/Java

프로그래머스 - 헤비 유저가 소유한 장소 MySQL/Oracle

고고마코드 2022. 6. 17. 13:43
반응형
77487번 문제

코딩테스트 연습 - 헤비 유저가 소유한 장소 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 헤비 유저가 소유한 장소

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

programmers.co.kr


풀이

공간을 소유한 유저의 아이디 - host_id

공간을 두 개 이상 등록한 사람이 "헤비 유저"

즉, places에 host_id가 2개 이상 있는 사람만 골라내면 됩니다.

 

  • 풀이1
select a.id, a.name, a.host_id
from places a
join (
    select host_id
    from places
    group by host_id
    having count(id) >= 2
) b on (a.host_id = b.host_id)
order by a.id

places에 host_id가 2개 이상 있는 사람만 찾아내서 join 을 걸어줍니다.

 

  • 풀이2
select a.id, a.name, a.host_id
from places a
where exists (
    select 'X'
    from places b
    where a.host_id = b.host_id
    group by b.host_id
    having count(b.id) >= 2
)
order by a.id

풀이1의 join절을 exists로 변환한 코드

 

반응형