문제링크
MEMBER_PROFILE와 REST_REVIEW 테이블에서 리뷰를 가장 많이 작성한 회원의 리뷰들을 조회하는 SQL문을 작성해주세요. 회원 이름, 리뷰 텍스트, 리뷰 작성일이 출력되도록 작성해주시고, 결과는 리뷰 작성일을 기준으로 오름차순, 리뷰 작성일이 같다면 리뷰 텍스트를 기준으로 오름차순 정렬해주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/131124#qna
풀이
1. 먼저 리뷰를 가장 많이 작성한 회원을 구하는 쿼리를 작성하였다.
2. 리뷰를 가장 많이 작성한 회원의 MEMBER_ID와 RANK를 하나의 컬럼에 붙여서 MEMBER_PROFILE의 MEMBER_ID에 1을 붙여 1순위인 회원만 추출하였다.
3. REST_REVIEW 테이블과 JOIN하였다.
4. 리뷰작성일 기준, 리뷰 텍스트 기준으로 오름차순 정렬하였다.
쿼리
SELECT
A.MEMBER_NAME,
B.REVIEW_TEXT,
TO_CHAR(B.REVIEW_DATE,'YYYY-MM-DD') AS REVIEW_DATE
FROM
MEMBER_PROFILE A , REST_REVIEW B
WHERE
A.MEMBER_ID||1 IN (
SELECT
MEMBER_ID||RANK() OVER (ORDER BY COUNT(1) DESC) AS MEMBER_ID
FROM
REST_REVIEW
GROUP BY MEMBER_ID
)
AND A.MEMBER_ID = B.MEMBER_ID
ORDER BY REVIEW_DATE ASC , REVIEW_TEXT ASC
'SQL' 카테고리의 다른 글
[SQL 문제풀이] 상품을 구매한 회원 비율 구하기-프로그래머스 (0) | 2023.04.19 |
---|---|
[SQL 문제풀이] 년, 월, 성별 별 상품 구매 회원 수 구하기-프로그래머스 (0) | 2023.04.13 |
[SQL 문제풀이] 식품분류별 가장 비싼 식품의 정보 조회하기-프로그래머스 (0) | 2023.04.13 |
[SQL 문제풀이] 입양 시각 구하기(2)-프로그래머스 (0) | 2023.04.12 |
[SQL 문제풀이] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기-프로그래머스 (0) | 2023.04.12 |