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

iinnuyh_s·2024년 1월 12일
0

SQL

목록 보기
15/17
post-thumbnail

그룹별 조건에 맞는 식당 목록 출력하기

풀이

  • 리뷰를 가장 많이 작성한 회원의 리뷰를 조회 해야 하기 때문에, 먼저 회원별 리뷰 개수를 나타내는 임시 테이블을 WITH 구문으로 만들어놨다.

  • 회원 이름, 리뷰텍스트, 리뷰 작성일이 출력되어야 하므로 MEMBER_PROFILERSET_REVIEW 테이블을 JOIN 하고, WHERE 절에 subquery를 써서, 리뷰개수=MAX(리뷰개수) 인 MEMBER_ID 를 뽑아 일치하는 경우 SELECT 를 하게 했다.

    🙆‍♀️ 정답풀이

    WITH CTE AS(
        SELECT COUNT(*) AS COUNT, MEMBER_ID
        FROM REST_REVIEW R
        GROUP BY MEMBER_ID
    )
    SELECT M.MEMBER_NAME,R.REVIEW_TEXT,DATE_FORMAT(R.REVIEW_DATE,'%Y-%m-%d') AS REVIEW_DATE
    FROM MEMBER_PROFILE AS M JOIN REST_REVIEW R
    ON M.MEMBER_ID=R.MEMBER_ID
    WHERE M.MEMBER_ID IN (SELECT MEMBER_ID
        FROM CTE
        WHERE CTE.COUNT=(SELECT MAX(COUNT) FROM CTE))
    ORDER BY 3,2;
  • 음... 게시판 보니까 최다 리뷰 단 회원이 다수인 경우는 고려하지 않은 문제인 것 같다. 내 코드는 최다 리뷰를 단 회원이 다수일 경우도 고려된 코드!🤗

0개의 댓글