개인공부/알고리즘

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

KEEMSY 2023. 8. 20. 23:31

 

 

프로그래머스

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

programmers.co.kr

 

 

나는 문제 풀이의 핵심은 범위를 제한하는 것이라고 생각했다. 가장 많은 리뷰를 작성한 유저 를 핵심으로 보고 쿼리를 작성했다.

 

SELECT
    mp.MEMBER_NAME,
    rr.REVIEW_TEXT,
    DATE_FORMAT(rr.REVIEW_DATE, '%Y-%m-%d') AS REVIEW_DATE
FROM
    (
        SELECT
            MEMBER_ID
        FROM
            REST_REVIEW
        GROUP BY
            MEMBER_ID
        ORDER BY
            COUNT(*) DESC
        LIMIT 1
    ) most_reviewed_member
JOIN
    REST_REVIEW AS rr ON most_reviewed_member.MEMBER_ID = rr.MEMBER_ID
JOIN
    MEMBER_PROFILE AS mp ON rr.MEMBER_ID = mp.MEMBER_ID
ORDER BY
    rr.REVIEW_DATE ASC,
    rr.REVIEW_TEXT ASC;

 

가장 많은 유저의 ID를 가져오고, JOIN을 통해 해당 유저가 작성한 리뷰와, 프로필을 가져왔다.

 

그런데 하나 또 주의해야할 부분이 있었다.

 

 

답이 왜 틀린가 했는데, 문제의 가장 하단부에 이런 제한조건이 있었다.... 그래서 해당 부분을 반영하고서 문제를 해결했다.

728x90