전공/프로그래머스
(SQL) 그룹별 조건에 맞는 식당 목록 출력하기
yha97
2023. 5. 29. 14:27
날짜 : 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 포맷을 계속 간과하는 바람에 정답이어도 한번에 나오지 못하는 경우가 더럿 있었다.
참고 사이트
-