본문 바로가기

SQL/프로그래머스 SQL 고득점 kit

SQL 고득점 Kit / 그룹별 조건에 맞는 식당 목록 출력하기 - MySQL

728x90

📚문제

출처 : 프로그래머스(https://school.programmers.co.kr/learn/courses/30/lessons/131124)


📝풀이

SELECT M.MEMBER_NAME
     , R.REVIEW_TEXT
     , DATE_FORMAT(R.REVIEW_DATE,'%Y-%m-%d') AS REVIEW_DATE
FROM REST_REVIEW R
INNER JOIN MEMBER_PROFILE M ON R.MEMBER_ID = M.MEMBER_ID
WHERE M.MEMBER_NAME = (SELECT M.MEMBER_NAME
                        FROM REST_REVIEW R
                        INNER JOIN MEMBER_PROFILE M ON R.MEMBER_ID = M.MEMBER_ID
                        GROUP BY M.MEMBER_NAME
                        ORDER BY COUNT(R.REVIEW_ID) DESC
                        LIMIT 1)
GROUP BY M.MEMBER_NAME, R.REVIEW_TEXT
ORDER BY R.REVIEW_DATE , R.REVIEW_TEXT

 

답과 거의 근접했는데 조금 아쉽게 틀렸다

이번 문제처럼 리뷰를 가장 많이 남긴 사람 1명을 반환(단일행 서브쿼리)할 때는

다중행 연산자(IN, ANY등) 대신 단일행 연산자(=,>등)를 써 주어야한다

(그리고 MySQL에서는 아직 다중행 연산자 & LIMIT 함수 사용을 지원하지 않음)

 

728x90