리뷰를 가장 많이 작성한 회원의 리뷰를 조회 해야 하기 때문에, 먼저 회원별 리뷰 개수를 나타내는 임시 테이블을 WITH 구문으로 만들어놨다.
회원 이름, 리뷰텍스트, 리뷰 작성일이 출력되어야 하므로 MEMBER_PROFILE
과 RSET_REVIEW
테이블을 JOIN 하고, WHERE 절에 subquery를 써서, 리뷰개수=MAX(리뷰개수)
인 MEMBER_ID 를 뽑아 일치하는 경우 SELECT 를 하게 했다.
🙆♀️ 정답풀이
WITH CTE AS( SELECT COUNT(*) AS COUNT, MEMBER_ID FROM REST_REVIEW R GROUP BY MEMBER_ID ) SELECT M.MEMBER_NAME,R.REVIEW_TEXT,DATE_FORMAT(R.REVIEW_DATE,'%Y-%m-%d') AS REVIEW_DATE FROM MEMBER_PROFILE AS M JOIN REST_REVIEW R ON M.MEMBER_ID=R.MEMBER_ID WHERE M.MEMBER_ID IN (SELECT MEMBER_ID FROM CTE WHERE CTE.COUNT=(SELECT MAX(COUNT) FROM CTE)) ORDER BY 3,2;
음... 게시판 보니까 최다 리뷰 단 회원이 다수인 경우는 고려하지 않은 문제인 것 같다. 내 코드는 최다 리뷰를 단 회원이 다수일 경우도 고려된 코드!🤗