728x90
반응형
SMALL
그룹별 조건에 맞는 식당 목록 출력하기
문제 출처
코딩테스트 연습 - 그룹별 조건에 맞는 식당 목록 출력하기 | 프로그래머스 스쿨 (programmers.co.kr)
Code
SELECT A.MEMBER_NAME, B.REVIEW_TEXT, DATE_FORMAT(B.REVIEW_DATE, "%Y-%m-%d") AS REVIEW_DATE
FROM MEMBER_PROFILE A
JOIN REST_REVIEW B ON A.MEMBER_ID = B.MEMBER_ID
WHERE A.MEMBER_NAME = (
SELECT MEMBER_NAME
FROM (
SELECT A.MEMBER_NAME, SUM(B.REVIEW_SCORE) AS SUM_REVIEW_SCORE
FROM MEMBER_PROFILE A
JOIN REST_REVIEW B ON A.MEMBER_ID = B.MEMBER_ID
GROUP BY A.MEMBER_NAME
ORDER BY SUM_REVIEW_SCORE DESC
LIMIT 1
) AS temp
)
ORDER BY REVIEW_DATE, REVIEW_TEXT
#MEMBER_PROFILE와 REST_REVIEW 테이블에서
#---> FROM문에서 JOIN할 2 테이블을 보여주고 있다
#리뷰를 가장 많이 작성한 회원의
#---> 조건문을 보여주고있다
#리뷰들을 조회하는 SQL문을 작성
#---> 위에 조건문을 만족하는 사람의 리뷰만 보여주라고 말해주고 있다(조건의 조건)
#회원 이름, 리뷰 텍스트, 리뷰 작성일이 출력되도록 작성해주시고,
#---> SELECT문을 보여주고있다
#결과는 리뷰 작성일을 기준으로 오름차순, 리뷰 작성일이 같다면 리뷰 텍스트를 기준으로 오름차순 정렬해주세요.
#---> 정렬방법에대해 보여주고 있다
Code설명 & TIPS
풀이 방법!
MEMBER_PROFILE와 REST_REVIEW 테이블에서
---> FROM문에서 JOIN할 2 테이블을 보여주고 있다
리뷰를 가장 많이 작성한 회원의
---> 조건문을 보여주고있다
리뷰들을 조회하는 SQL문을 작성
---> 위에 조건문을 만족하는 사람의 리뷰만 보여주라고 말해주고 있다(조건의 조건)
회원 이름, 리뷰 텍스트, 리뷰 작성일이 출력되도록 작성해주시고,
---> SELECT문을 보여주고있다
결과는 리뷰 작성일을 기준으로 오름차순, 리뷰 작성일이 같다면 리뷰 텍스트를 기준으로 오름차순 정렬해주세요.
---> 정렬방법에대해 보여주고 있다
설명!
사실상 까다로운건 없던 문제였다
문제 구조를 먼저 파악을 한다면 손쉽게 풀 수 있다
일단 각각 사람마다 썻던 리뷰총합을 구하고 그걸로 순위를 매긴 뒤 1등의 이름을 찾는다
그 이름을 통해 그사람이 썻던 리뷰들을 모두 보여주면 된다.
순위를 매기는 과정에서 내 방식대로 정렬 후 리미트로 자르는 방식도 값을 구할 수 있긴하지만
RANK함수를 사용하면 더 짧고 가시성 있게 만들 수 있다.
필자도 RANK를 이용해 만들걸 이라는 생각을 했지만 너무 먼길을 걸어왔었기에...
RANK를 이용하여 한번 만들어 보길 추천한다(난 안할거임)
티스토리와 깃허브 홈
오류나 궁금하신점은
아래 댓글로 알려주시면 감사하겠습니다.
728x90
반응형
LIST
'프로그래머스' 카테고리의 다른 글
(MySQL / 프로그래머스) 성분으로 구분한 아이스크림 총 주문량 (0) | 2023.09.22 |
---|---|
(MySQL / 프로그래머스) 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2023.09.22 |
(MySQL / 프로그래머스) 5월 식품들의 총매출 조회하기 (0) | 2023.09.21 |
(MySQL / 프로그래머스) 조건에 맞는 도서와 저자 리스트 출력하기 (0) | 2023.09.21 |
(MySQL / 프로그래머스) 조건에 맞는 회원수 구하기 (0) | 2023.09.21 |