문제:
리뷰를 가장 많이 작성한 회원의 리뷰들을 조회
- 회원 이름, 리뷰 텍스트, 리뷰 작성일을 출력
- 결과는 리뷰 작성일을 기준으로 오름차순, 리뷰 텍스트를 기준으로 오름차순
해결방법:
1. 회원별 리뷰수를 구한 뒤 최대값 구하기
2. 리뷰 수 최대값을 갖는 회원 구하기
3. 회원 이름과 회원 ID 로 조인
4. 리뷰 테이블에서 이전에 구한 가장 많이 작성한 회원 리스트와 비교(조건)
5. 정렬 조건 설정하기
예시 코드:
SELECT MEMBER_NAME, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE, '%Y-%m-%d') REVIEW_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 REST_REVIEW
GROUP BY MEMBER_ID
HAVING COUNT(REVIEW_ID) = (
SELECT COUNT(REVIEW_ID) CNT
FROM REST_REVIEW
GROUP BY MEMBER_ID
ORDER BY CNT DESC
LIMIT 1
)
)
ORDER BY REVIEW_DATE ASC, REVIEW_TEXT ASC
;
'[SQL] 연습' 카테고리의 다른 글
[MySQL] 프로그래머스 오프라인/온라인 판매 데이터 통합하기 (0) | 2025.04.05 |
---|---|
[MySQL] 프로그래머스 연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기 (0) | 2025.04.01 |
[MySQL] 프로그래머스 물고기 종류 별 대어 찾기 (0) | 2025.03.30 |
[MySQL] 프로그래머스 업그레이드 할 수 없는 아이템 구하기 (0) | 2025.03.28 |
[MySQL] 프로그래머스 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기 (0) | 2025.03.23 |