<MEMBER_PROFILE> & <REST_REVIEW> 테이블 구조
<문제>
<문제 풀이>
SELECT MEMBER_NAME, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE, '%Y-%m-%d') AS REVIEW_DATE
FROM MEMBER_PROFILE AS P
JOIN REST_REVIEW AS R
ON P.MEMBER_ID = R.MEMBER_ID
WHERE P.MEMBER_ID = (SELECT MEMBER_ID
FROM REST_REVIEW
GROUP BY MEMBER_ID
ORDER BY COUNT(*) DESC
LIMIT 1)
ORDER BY 3 asc, 2 asc;
첫 번째로는 리뷰를 가장 많이 작성한 회원이 누구인지를 찾는 쿼리를 작성해야한다.
그래서 리뷰 테이블에서 member_id로 그룹화 해준 후 지난번 문제처럼 ORDER절에 집계 함수인 count를 사용하였다.
그 다음 가장 많이 작성한 회원 한명만 있으면 되니까 limit 1 를 해줬다.
위에 작성한 쿼리를 서브 쿼리로 만든 후 해당 id 값을 가진 멤버의 이름과 리뷰 내용들에 대한 메인 요구사항을 불러오는 쿼리를 작성해야했다.
문제에서 요구하는 내용들을 SELECT절에 작성 & 두 테이블을 member_id로 조인 하였다.
그리고 마지막으로 메인 쿼리의 ORDER절을 작성하고, 마지막 컬럼의 데이트 포멧을 통일 시켜 주었다.
'IT > SQL' 카테고리의 다른 글
[MySQL] 프로그래머스 - 입양 시각 구하기(2) (0) | 2024.01.29 |
---|---|
[MySQL] 프로그래머스 - 오프라인/온라인 판매 데이터 통합하기 (0) | 2024.01.29 |
[MySQL] 프로그래머스 - 주문량이 많은 아이스크림들 조회하기 (0) | 2024.01.25 |
[MySQL] 프로그래머스 - 저자 별 카테고리 별 매출액 집계하기 (0) | 2024.01.25 |
[MySQL] 프로그래머스 - 우유와 요거트가 담긴 장바구니 (0) | 2024.01.25 |