일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- collections
- 프로그래머스
- 코테
- itertools
- join
- python
- 코딩테스트
- Queue
- level4
- Stack
- lv4
- lambda
- programmers
- 파이썬
- coding test
- counter
- time complexity
- 코딩
- Level2
- 완전탐색
- mysql
- 조합
- 연습문제
- BFS
- CodingTest
- sql
- import re
- 데이터분석
- coding
- 시간복잡도
- Today
- Total
ror_coding
[Programmers Lv.4] 그룹별 조건에 맞는 식당 목록 출력하기 - 131124 본문
728x90
게시물 가장 많은 아이디 추출을 위해 JOIN (SELECT~)를 해주고 자기 자신과 SELF JOIN 해줬다.
Question
MEMBER_PROFILE와 REST_REVIEW 테이블에서 리뷰를 가장 많이 작성한 회원의 리뷰들을 조회하는 SQL문을 작성해주세요. 회원 이름, 리뷰 텍스트, 리뷰 작성일이 출력되도록 작성해주시고, 결과는 리뷰 작성일을 기준으로 오름차순, 리뷰 작성일이 같다면 리뷰 텍스트를 기준으로 오름차순 정렬해주세요.
Code (After)
WITH MOST_MEMBER AS(
SELECT MEMBER_ID, COUNT(*) # SELECT MEMBER_ID
FROM REST_REVIEW
GROUP BY MEMBER_ID
ORDER BY 2 DESC # ORDER BY COUNT(*) DESC
LIMIT 1
)
SELECT MEMBER_NAME, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE, '%Y-%m-%d') AS REVIEW_DATE
FROM REST_REVIEW R
JOIN MOST_MEMBER M
ON R.MEMBER_ID = M.MEMBER_ID
JOIN MEMBER_PROFILE P
ON P.MEMBER_ID = M.MEMBER_ID
ORDER BY 3, 2
Code (Before)
SELECT M.MEMBER_NAME, REVIEW_TEXT, DATE_FORMAT(REVIEW_DATE,'%Y-%m-%d')
FROM REST_REVIEW A
JOIN (SELECT MEMBER_ID
FROM REST_REVIEW
GROUP BY MEMBER_ID
ORDER BY COUNT(*) DESC
LIMIT 1) B
ON A.MEMBER_ID = B.MEMBER_ID
JOIN MEMBER_PROFILE M
ON M.MEMBER_ID = A.MEMBER_ID
ORDER BY REVIEW_DATE, REVIEW_TEXT
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/016.gif)
now me
On my github
728x90
'Algorithm > SQL' 카테고리의 다른 글
[Programmers Lv.4] 오프라인/온라인 판매 데이터 통합하기 - 131537 (0) | 2024.10.25 |
---|---|
[Programmers Lv.4] 연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기 - 284528 (0) | 2024.10.24 |
[Programmers Lv.4] 주문량이 많은 아이스크림들 조회하기 - 133027 (0) | 2024.10.17 |
[Programmers Lv.4] 우유와 요거트가 담긴 장바구니 - 62284 (0) | 2024.10.14 |
[Programmers Lv.4] 저자 별 카테고리 별 매출액 집계하기 - 144856 (0) | 2024.10.14 |