💡문제 풀이/프로그래머스 - Oracle

헤비 유저가 소유한 장소 / 77487

뇌 리셋은 기본이지 2024. 6. 25. 16:07

정보

분류 : 2021 Dev-Matching: 웹 백엔드 개발자(상반기)

 

문제

문제링크

 

풀이

-- 조       건 : 헤비 유저가 등록한 공간의 정보 추출
-- 정렬조건 : 아이디 순으로 조회

풀이 1. JOIN절

SELECT P.*
  FROM PLACES P
  JOIN (
         SELECT COUNT(*)
              , HOST_ID
           FROM PLACES
          GROUP BY HOST_ID
         HAVING COUNT(*) >= 2
       ) P2
    ON P.HOST_ID = P2.HOST_ID
 ORDER BY P.ID

풀이 2. WHERE절

SELECT *
  FROM PLACES P1
  WHERE (
          SELECT COUNT(*)
            FROM PLACES
           WHERE P1.HOST_ID = HOST_ID
        ) >= 2
  ORDER BY P1.ID

 

풀이 내용

풀이 1은 글쓴이가 푼 방법이고 풀이 2는 다른 분이 푼 방법이다.

풀이 1은 JOIN 기준 오른쪽에 있는 서브쿼리를 통해 공간을 둘 이상 가지고 있는 HOST_ID를 추출해서 PLACES 테이블에 있는 HOST_ID와 JOIN하여 데이터를 출력해주었다.

풀이 2는 HOST_ID 기준 COUNT를 진행하여 공간을 둘 이상 등록한 HOST_ID를 추출하였다. 글쓴이가 푼 방법보다 더 직관적이라 좋은 것 같다.