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

2024. 1. 12. 14:48Coding/프로그래머스-SQL

문제 링크

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

 

프로그래머스

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

programmers.co.kr

 

문제

 

코드

-- 코드를 입력하세요
SELECT P.MEMBER_NAME, R.REVIEW_TEXT, SUBSTR(R.REVIEW_DATE, 1, 10) AS REVIEW_DATE
FROM MEMBER_PROFILE P 
JOIN REST_REVIEW R
ON P.MEMBER_ID = R.MEMBER_ID
WHERE R.MEMBER_ID = (SELECT MEMBER_ID
                     FROM REST_REVIEW
                     GROUP BY MEMBER_ID
                    ORDER BY COUNT(MEMBER_ID) DESC LIMIT 1) 
ORDER BY R.REVIEW_DATE, R.REVIEW_TEXT;

1. 아무래도 서브쿼리가 체감상 어려운 거 같아서 서브쿼리 위주로 분석을 해보려고 한다. 서브쿼리에서는 LIMIT 1을 ORDER BY 절에 넣어서 '리뷰를 가장 많이 작성한 회원'을 출력하게 한다. 

2. 그리고 나서 서브쿼리의 출력된 회원들 중에 리뷰들을 메인 쿼리에서 출력되도록 SELECT 문을 작성해준다.