[MySQL] 헤비 유저가 소유한 장소

AI Scientist를 목표로!·2023년 1월 7일
0

프로그래머스 문제


테이블 구조

  • 테이블명: PLACES
    • ID : 공간의 아이디
    • NAME : 이름
    • HOST_ID : 공간을 소유한 유저의 아이디


문제

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


문제 분석

  • 헤비 유저는 HOST_ID가 2개 이상 등록된 유저를 뜻하며 해당 값을 확인하기 위해 서브 쿼리를 사용

  • 아이디 순으로 정렬


해결 방법

  • 헤비 유저를 계산하기 위해서는 WHERE절에서 2개 이상 등록된 HOST_ID를 찾아야 함

    WHERE a.host_id in (SELECT host_id
                       FROM places
                       GROUP BY host_id
                       HAVING COUNT(host_id) >= 2
                        )
  • 정렬

    		ORDER BY id ASC

최종 코드

SELECT *
FROM places AS a
WHERE a.host_id in (SELECT host_id
                   FROM places
                   GROUP BY host_id
                   HAVING COUNT(host_id) >= 2
                    )
ORDER BY id ASC                    
  • GROUP BY를 사용하지 않을 경우
SELECT *
FROM places a
WHERE (SELECT COUNT(host_id) as host_id
       FROM places
       WHERE host_id = a.host_id) >= 2
ORDER BY id
profile
딥러닝 지식의 백지에서 깜지까지

0개의 댓글