강의로 돌아가기
lyhjohn

문제 이거 아니었낭

리뷰 개수 같으면 날짜, 텍스트 순으로 오름차순 정렬해서 가장 앞에 있는 멤버의 리뷰들을 가져오는걸로 이해했는데 동 순위면 어느 멤버의 리뷰들을 가져오든 정답처리되네용
(랭킹 가져올 때 COUNT(*)로 한번만 정렬해주고 마지막에 한번만 날짜, 텍스트로 정렬해주면 된다는 뜻. 근데 문제 허점같음)

작성중인 코드―solution.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
-- 코드를 입력하세요

SELECT P.MEMBER_NAME, R2.REVIEW_TEXT, R2.REVIEW_DATE
FROM MEMBER_PROFILE AS P
INNER JOIN (
    -- 랭킹 1위에 해당하는 리뷰 정보 SELECT
    SELECT MEMBER_ID, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE, '%Y-%m-%d') AS REVIEW_DATE
    FROM REST_REVIEW  AS R1
    WHERE R1.MEMBER_ID =
    (
        -- 그룹 간 비교 정렬해서 랭킹 가져옴
        SELECT MEMBER_ID
        FROM 
        (
            -- GROUP BY 전에 정렬된 상태로 묶기 위해 전체 정렬
            SELECT *
            FROM REST_REVIEW
            ORDER BY REVIEW_DATE, REVIEW_TEXT
        ) AS R
        GROUP BY MEMBER_ID 
        ORDER BY COUNT(*) DESC, REVIEW_DATE, REVIEW_TEXT
        LIMIT 1
    )
) AS R2
ON P.MEMBER_ID = R2.MEMBER_ID
ORDER BY R2.REVIEW_DATE, R2.REVIEW_TEXT
1 개의 답변
심진섭

그러게요.. 저도 동 순위 모두를 가져와야 하는 거로 이해하고 풀었는데 안그래도 되나보네요

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.