본문 바로가기
코딩테스트/SQL

[SQL Lv3] 즐겨찾기가 가장 많은 식당 정보 출력하기

by 박창준 2024. 11. 26.

 

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 해석

1. 음식 분류별로 GROUP BY를 하기

2. GROUP BY의 max값을 활용해서 가장 많은 좋아요를 받기

3. 주의점은 GROUP BY로 MAX(FAVORITES)를 뽑는다고 해서 이 최대값이 어떤 REST_ID와 연결되어있는지 알 수 없다.

 

문제 풀이

1. where절 서브쿼리로 각 음식 타입마다 가장 많은 좋아요를 테이블을 뽑아와서 IN절로 비교한다.

SELECT FOOD_TYPE, REST_ID,REST_NAME,FAVORITES
FROM REST_INFO 
WHERE (FOOD_TYPE, FAVORITES) IN (
    SELECT FOOD_TYPE, MAX(FAVORITES)
    FROM REST_INFO
    GROUP BY FOOD_TYPE
)
ORDER BY FOOD_TYPE DESC

댓글