Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- 자료구조
- 에라토스테네스의 체
- 구현
- 우선순위큐
- DFS
- 투포인터
- join
- 백트래킹
- 다이나믹 프로그래밍
- 재귀
- 서브쿼리
- 다익스트라
- 그래프 이론
- 크루스칼
- GROUP BY
- 플로이드-워셜
- 누적합
- 분할정복
- 다이나믹프로그래밍
- DP
- MST
- 시뮬레이션
- 수학
- 브루트포스
- 그리디
- 해시
- 다시
- BFS
- 트리
- 그래프 탐색
Archives
- Today
- Total
기록하고 까먹지 말기
(SQL) 그룹별 조건에 맞는 식당 목록 출력하기 본문
날짜 : 2023. 05. 29
사용 언어 : mysql
문제
코드
# 리뷰를 가장 많이 작성한 회원의 리뷰
# 회원 이름, 리뷰 텍스트, 리뷰 작성일이 출력
select p.member_name, r.review_text, date_format(r.review_date, "%Y-%m-%d") as review_date
from MEMBER_PROFILE p
join REST_REVIEW 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 r.review_date asc, r.review_text asc;
풀이
- 해당 서브쿼리 내부에서 멤버 id별로 그룹화하고, 각 그룹마다의 빈도수를 체크해서 내림차순으로 정렬, limit를 걸어서 1개만 출력한 다음 조건에 맞게 출력한다.
알게된 점
- order by count(*)를 사용하는 방법을 확실하게 몰랐다.
- 그리고 출력할 때 date 포맷을 계속 간과하는 바람에 정답이어도 한번에 나오지 못하는 경우가 더럿 있었다.
참고 사이트
-
'전공 > 프로그래머스' 카테고리의 다른 글
아이템 줍기 (0) | 2023.05.30 |
---|---|
가장 먼 노드 (0) | 2023.05.29 |
다리를 지나는 트럭 (0) | 2023.05.29 |
(SQL) 5월 식품들의 총매출 조회하기 (0) | 2023.05.29 |
(SQL) 대여 기록이 존재하는 자동차 리스트 구하기 (0) | 2023.05.28 |