문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/131124
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
WITH문을 통해 리뷰를 작성한 사람 중 가장 많이 리뷰를 단 사람이 몇 개의 리뷰를 작성했는지 구하고 (MOST_REVIEW_COUNTS),
해당 개수만큼 리뷰를 단 사람들의 ID를 조회해 주면 쉽게 풀 수 있는 문제였습니다. (MEMBER_IDS)
MySQL을 이용하여 풀었습니다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- 코드를 입력하세요 | |
WITH MOST_REVIEW_COUNTS AS ( | |
SELECT | |
MEMBER_ID, | |
COUNT(*) AS CNT | |
FROM | |
REST_REVIEW | |
GROUP BY | |
MEMBER_ID | |
ORDER BY | |
CNT DESC | |
LIMIT | |
1 | |
), | |
MEMBER_IDS AS ( | |
SELECT | |
MEMBER_ID, | |
COUNT(*) AS CNT | |
FROM | |
( | |
SELECT | |
MEMBER_ID, | |
COUNT(*) AS CNT | |
FROM | |
REST_REVIEW | |
GROUP BY | |
MEMBER_ID | |
) TEMP | |
WHERE | |
CNT = (SELECT CNT FROM MOST_REVIEW_COUNTS) | |
) | |
SELECT | |
MEMBER_NAME, | |
REVIEW_TEXT, | |
SUBSTRING(REVIEW_DATE, 1, 10) AS REVIEW_DATE | |
FROM | |
MEMBER_PROFILE | |
INNER JOIN | |
REST_REVIEW | |
ON | |
MEMBER_PROFILE.MEMBER_ID = REST_REVIEW.MEMBER_ID | |
WHERE | |
MEMBER_PROFILE.MEMBER_ID IN (SELECT MEMBER_ID FROM MEMBER_IDS) | |
ORDER BY | |
REVIEW_DATE, | |
REVIEW_TEXT |

개발환경: Programmers IDE
지적, 조언, 질문 환영합니다! 질문 남겨주세요~
반응형
'알고리즘 > programmers' 카테고리의 다른 글
[Programmers] 서울에 위치한 식당 목록 출력하기 (5) | 2023.06.25 |
---|---|
[Programmers] 가격이 제일 비싼 식품의 정보 출력하기 (0) | 2023.06.24 |
[Programmers] 취소되지 않은 진료 예약 조회하기 (0) | 2023.06.21 |
[Programmers] 우유와 요거트가 담긴 장바구니 (0) | 2023.06.19 |
[Programmers] 조건별로 분류하여 주문상태 출력하기 (0) | 2023.06.19 |