Welcome! Everything is fine.

[프로그래머스/Lv.4] 그룹별 조건에 맞는 식당 목록 출력하기 - MySQL 본문

프로그래머스/SQL

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

개발곰발 2024. 4. 22. 18:37
728x90

📌 문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

📌 정답

어려워서 답을 보고 푼 문제..다른 건 다 적어도 WHERE절에 있는 긴 서브쿼리는 못적었다.🥲윈도우 함수는 거의 써보지 않아서 생소하다. DENSE_RANK()는 동일한 순위를 하나의 건수로 취급하는 함수이다. 따라서 리뷰 수가 같은 경우에도 같은 순위로 취급한다. 최종적으로는 REVIEW_RANK가 1인 회원의 MEMBER_ID를 선택한다.

SELECT MEMBER_NAME, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE,'%Y-%m-%d') AS REVIEW_DATE
FROM MEMBER_PROFILE JOIN REST_REVIEW USING (MEMBER_ID)
WHERE MEMBER_ID IN (SELECT MEMBER_ID
                    FROM (SELECT *, DENSE_RANK() OVER (ORDER BY COUNT(*) DESC) AS REVIEW_RANK
                          FROM REST_REVIEW 
                          GROUP BY MEMBER_ID) INLINE
                    WHERE REVIEW_RANK = 1
                   )
ORDER BY REVIEW_DATE, REVIEW_TEXT