본문 바로가기

프로그래머스

SQL - 그룹별 조건에 맞는 식당 목록 출력하기_JOIN

반응형

1. 문제

MEMBER_PROFILE와 REST_REVIEW 테이블에서 리뷰를 가장 많이 작성한 회원의 리뷰들을 조회하는 SQL문을 작성해주세요. 회원 이름, 리뷰 텍스트, 리뷰 작성일이 출력되도록 작성해주시고, 결과는 리뷰 작성일을 기준으로 오름차순, 리뷰 작성일이 같다면 리뷰 텍스트를 기준으로 오름차순 정렬해주세요.

 

*문제 원본은 '문제링크' 참고 

2. 주요 학습 내용

1) DATE_FORMAT 이용한 날짜 출력 형태 가공

2) Join on 이용한 데이터 조회

3) subqery 사용(WHERE 절 안에서 사용함)

🔎 3. 작성 코드

-- 코드를 입력하세요
SELECT 
	A.MEMBER_NAME, B.REVIEW_TEXT, DATE_FORMAT(B.REVIEW_DATE,'%Y-%m-%d') AS REVIEW_DATE
FROM 
	MEMBER_PROFILE AS A
JOIN 
	REST_REVIEW AS B ON A.MEMBER_ID = B.MEMBER_ID
WHERE B.MEMBER_ID = (
    SELECT MEMBER_ID
    FROM (
        SELECT MEMBER_ID, COUNT(*) AS REVIEW_COUNT
        FROM REST_REVIEW
        GROUP BY MEMBER_ID
        ORDER BY REVIEW_COUNT DESC
        LIMIT 1
    ) subquery
)
ORDER BY 
	B.REVIEW_DATE, B.REVIEW_TEXT;
반응형