Data house
[MYSQL] 그룹별 조건에 맞는 목록 출력 - 서브쿼리 본문
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/131124
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 요구사항
1. 두 테이블에서 리뷰를 가장 많이 작성한 회원의 리뷰들을 조회하는 SQL 작성
2. 회원 이름, 리뷰 텍스트, 리뷰 작성일 출력
3. 리뷰 작성일 기준 오름차순, 리뷰 텍스트 기준 오름차순
핵심 능력
2,3은 쉽게 달성할 수 있지만, 1은 많은 생각이 필요함
리뷰를 가장 많이 작성한 회원을 알려면 -> 서브 쿼리 작성
인상적인 코드
SELECT M.MEMBER_NAME, R.REVIEW_TEXT, DATE_FORMAT(R.REVIEW_DATE, "%Y-%m-%d")
FROM MEMBER_PROFILE as M
JOIN (
SELECT MEMBER_ID, REVIEW_TEXT, REVIEW_DATE
FROM REST_REVIEW
WHERE MEMBER_ID = (
SELECT MEMBER_ID
FROM REST_REVIEW
GROUP BY MEMBER_ID
ORDER BY COUNT(*) DESC
LIMIT 1
)
) R
USING(MEMBER_ID)
ORDER BY R.REVIEW_DATE, R.REVIEW_TEXT
'Computer Knowledge > 데이터베이스' 카테고리의 다른 글
[MYSQL] 자동차 대여 기록 대여 여부 기록 - max, case when (0) | 2023.05.22 |
---|---|
[MYSQL] 5월 매출 총매출 조회 - 서브 쿼리, GROUP BY (0) | 2023.05.15 |
[MYSQL] 역대급 어려운 문제 - WITH(임시테이블) (0) | 2023.05.14 |
[MYSQL] INNER, LEFT, RIGHT JOIN / ON, USING 차이 (0) | 2023.05.14 |
[MYSQL] 자동차 평균 대여 기간 - GROUP BY, DATEDIFF (0) | 2023.05.12 |