728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/131124
코딩테스트 연습 - 그룹별 조건에 맞는 식당 목록 출력하기
알고리즘 문제 연습 카카오톡 친구해요! 프로그래머스 교육 카카오 채널을 만들었어요. 여기를 눌러, 친구 추가를 해주세요. 신규 교육 과정 소식은 물론 다양한 이벤트 소식을 가장 먼저 알려
school.programmers.co.kr
SELECT
MP.MEMBER_NAME, -- 회원 이름
RR.REVIEW_TEXT, -- 리뷰 내용
TO_CHAR(RR.REVIEW_DATE, 'YYYY-MM-DD') AS REVIEW_DATE -- 리뷰 작성일 (문자열 변환)
FROM
MEMBER_PROFILE MP
JOIN REST_REVIEW RR ON MP.MEMBER_ID = RR.MEMBER_ID -- 회원ID로 두 테이블 연결
WHERE
MP.MEMBER_ID = (
SELECT MEMBER_ID
FROM REST_REVIEW
GROUP BY MEMBER_ID
ORDER BY COUNT(*) DESC
FETCH FIRST 1 ROW ONLY -- 리뷰를 가장 많이 쓴 단 1명의 회원 ID
)
ORDER BY
RR.REVIEW_DATE,
RR.REVIEW_TEXT;
주어진 테이블에는 공동 1등이 여러 명인데 처리 조건이 없어서 헷갈렸음
상기 쿼리로 정답 처리되지만, 리뷰를 가장 많이 작성한 회원이 여러 명일 때 전부 출력하려면 `WITH TIES` 사용
...
WHERE
MP.MEMBER_ID IN (
SELECT MEMBER_ID
FROM REST_REVIEW
GROUP BY MEMBER_ID
ORDER BY COUNT(*) DESC
FETCH FIRST 1 ROW WITH TIES
)
...