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가 있어야함
'SQL 문제풀이' 카테고리의 다른 글
[프로그래머스 SQL] LV.4 입양 시각 구하기(2) (0) | 2023.08.11 |
---|---|
[프로그래머스 SQL] LV.4 오프라인/온라인 판매 데이터 통합하기 (0) | 2023.08.11 |
[프로그래머스 SQL] LV.3 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2023.08.11 |
[프로그래머스 SQL] LV.4 저자 별 카테고리 별 매출액 집계하기 (0) | 2023.08.11 |
[프로그래머스 SQL] LV.3 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2023.08.11 |