본문 바로가기
카테고리 없음

[프로그래머스]LV4.그룹별 조건에 맞는 식당 목록 출력하기

by 리토스송 2024. 7. 25.

https://school.programmers.co.kr/learn/courses/30/lessons/131124 문제

WITH ct AS(
    SELECT MEMBER_ID,
           DENSE_RANK() OVER(ORDER BY COUNT(MEMBER_ID) DESC) AS rk
    FROM REST_REVIEW 
    GROUP BY MEMBER_ID)

SELECT M.MEMBER_NAME,REVIEW_TEXT,
DATE_FORMAT(REVIEW_DATE,'%Y-%m-%d') REVIEW_DATE
FROM MEMBER_PROFILE AS M
INNER JOIN ct AS C ON C.MEMBER_ID=M.MEMBER_ID
INNER JOIN REST_REVIEW AS R ON M.MEMBER_ID=R.MEMBER_ID
WHERE rk=1
ORDER BY REVIEW_DATE,REVIEW_TEXT

DENSE_RANK 윈도우 함수를 활용하여 리뷰 작성 개수가 가장 많은 회원 중 리뷰 개수가 같은 회원도  중복하여 출력 가능하도록 하였고, JOIN을 활용하여 MEMBER_NAME과 REVIEW_TEXT 또한 출력하도록 하였다. 

//처음에  MEMBER_ID 말고 REST_ID로 개수를 세서 시간을 많이 잡아먹어서 문제를 이해하는 게 중요하다고 생각이 들었다.