SQL 문제풀이
[프로그래머스 SQL] LV.4 그룹별 조건에 맞는 식당 목록 출력하기
냄비짱
2023. 8. 11. 22:51
728x90
❓ Question
❗ Answer
SELECT p.member_name, r.review_text, DATE_FORMAT(r.review_date,'%Y-%m-%d')
FROM member_profile p
INNER JOIN rest_review r
ON p.member_id = r.member_id
WHERE p.member_id IN (SELECT member_id
FROM rest_review
GROUP BY member_id
HAVING COUNT(member_id) = (SELECT MAX(cnt)
FROM (SELECT COUNT(member_id) cnt
FROM rest_review
GROUP BY member_id) a))
ORDER BY review_date, review_text;
📌 Discussion
- 첫번째 sub query로 회원별 리뷰 개수를 추출하고
- 두번째 sub query로 가장 큰 회원별 리뷰 개수를 추출하고
- 세번째 sub query로 해당 리뷰 개수만큼 리뷰를 남긴 사람의 member_id를 추출하고
- main query에서 해당 member_id를 활용하여 원하는 데이터를 추출
- sub-query inline view로 테이블을 불러올 때는 반드시 alias가 있어야함