본문 바로가기
데이터분석 공부하기/프로그래머스 SQL 고득점 키트

[JOIN / level4 ] 그룹별 조건에 맞는 식당 목록 출력하기

by Confident Beginner 2023. 3. 4.

오답쿼리

/*
1.
이름, 텍스트, 작성일
MEMBER_ID
2. 리뷰를 가장 많이 작성한회원의 리뷰
3. 리뷰작성일, 리뷰텍스트
*/

WITH most AS(
    SELECT DISTINCT MEMBER_ID
            ,COUNT(*) AS number
    FROM REST_REVIEW
    GROUP BY MEMBER_ID
    ORDER BY number DESC
    LIMIT 3
)    


SELECT m.MEMBER_NAME MEMBER_NAME
    ,r.REVIEW_TEXT REVIEW_TEXT
    ,DATE_FORMAT(r.REVIEW_DATE, "%Y-%m-%d") REVEIW_DATE
FROM MEMBER_PROFILE m
    INNER JOIN REST_REVIEW r
        ON m.MEMBER_ID = r.MEMBER_ID
WHERE m.MEMBER_ID IN (SELECT MEMBER_ID FROM most)
ORDER BY REVEIW_DATE, REVIEW_TEXT

정답쿼리

WITH most AS(
    SELECT DISTINCT MEMBER_ID
            ,COUNT(*) AS number
    FROM REST_REVIEW
    GROUP BY MEMBER_ID
    ORDER BY number DESC
    LIMIT 1
)    


SELECT m.MEMBER_NAME MEMBER_NAME
    ,r.REVIEW_TEXT REVIEW_TEXT
    ,DATE_FORMAT(r.REVIEW_DATE, "%Y-%m-%d") REVEIW_DATE
FROM MEMBER_PROFILE m
    INNER JOIN REST_REVIEW r
        ON m.MEMBER_ID = r.MEMBER_ID
WHERE m.MEMBER_ID IN (SELECT MEMBER_ID FROM most)
ORDER BY REVEIW_DATE, REVIEW_TEXT

 

 

오답노트

이 문제는 질문답변 보니까 복수정답이라고 하는데

나는 가장 리뷰를 많이 작성한 사람이 3명인데

LIMIT 3했을 때는 오답인데 LIMIT 1 으로 하면 정답이었다.

 

 

 

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