[코드카타] SQL 09 그룹별 조건에 맞는 식당 목록 출력하기

Data_Student·2024년 10월 28일
0

코드카타

목록 보기
15/57

[코드카타] SQL 09 그룹별 조건에 맞는 식당 목록 출력하기

9. 그룹별 조건에 맞는 식당 목록 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/131124

#문제 : MEMBER_PROFILE와 REST_REVIEW 테이블에서 리뷰를 가장 많이 작성한 회원의 리뷰들을
       조회하는 SQL문을 작성해주세요. 회원 이름, 리뷰 텍스트, 리뷰 작성일이 출력되도록 작성해주시고, 
       결과는 리뷰 작성일을 기준으로 오름차순, 리뷰 작성일이 같다면 리뷰 텍스트를 기준으로 
       오름차순 정렬해주세요.
#조건 1 리뷰를 가장 많이 작성한 횟수 찾기
#조건 2 가장 많이 작성한 회원들 찾기
select member_name, review_text, date_format(review_date, '%Y-%m-%d') review_date
from MEMBER_PROFILE mp
join
    (select member_id, count(*)                   
    from rest_review
    group by member_id
    having count(*) = (select count(*) cnt_review #조건 2 having 절에서 회원들 확인
    from rest_review
    group by member_id
    order by cnt_review desc limit 1)             #조건 1 limit를 사용해서 최댓값 확인
    order by 2 ) a
on a.member_id = mp.member_id                     
join rest_review b on mp.member_id = b.member_id
order by 3, 2 ;
#생각해보기!
#최댓값은 동일 횟수가 있을 수 있기 때문에 하나가 아닐 수도 있다!
#보다 쿼리문을 깔끔하게 작성할 수 있는 방법이 무엇인지 고민해보기!
#최댓값을 하나만 찾아서 진행해도 프로그래머스에서는 정답으로 인정하지만 동일값에 대해서 같이 표현하기!

0개의 댓글