[SQL 문제 풀기] 그룹별 조건에 맞는 식당 목록 출력하기(131124)

lhs's avatar
Feb 12, 2025
[SQL 문제 풀기] 그룹별 조건에 맞는 식당 목록 출력하기(131124)
 

1. 문제 풀이 아이디어

  • WITH 절로 회원별 리뷰 개수를 구하고 DENSE_RANK()로 최다 리뷰 회원을 찾은 후, JOIN을 사용해 필터링하여 문제를 해결한다.

2. 나의 정답 코드

WITH counts AS ( SELECT member_id, COUNT(*) AS review_count, DENSE_RANK() OVER (ORDER BY COUNT(*) DESC) AS rnk FROM rest_review GROUP BY member_id ) SELECT m.member_name, r.review_text, LEFT(r.review_date, 10) AS review_date FROM rest_review r JOIN member_profile m ON r.member_id = m.member_id JOIN counts c ON r.member_id = c.member_id WHERE c.rnk = 1 ORDER BY review_date, review_text;

3. 정리

  • counts CTE에서 GROUP BY로 회원별 리뷰 개수를 구하고 DENSE_RANK()로 최다 리뷰 회원을 찾는다.
  • JOIN을 사용하여 member_profilerest_review를 연결하고, 최다 리뷰 회원만 선택한다.
  • ORDER BYreview_date, review_text 순으로 정렬하여 출력한다.
Share article

LHS's Study Space