[SQL] 연습

[MySQL] 프로그래머스 즐겨찾기가 가장 많은 식당 정보 조회하기

Simon Yoon 2024. 10. 16. 20:07

문제:

REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회

- 결과는 음식 종류를 기준으로 내림차순 정렬

 

해결 방법:

1. GROUP BY, MAX() 를 사용해서 음식 종류별 즐겨찾기수의 최대값을 조회

2. INNER JOIN 으로 REST_INFO 와 앞선 테이블을 JOIN 하고 음식종류와 즐겨찾기수가 같은 식당을 조회

 

예시 코드:

SELECT RI.FOOD_TYPE, REST_ID, REST_NAME, FAVORITES
FROM REST_INFO AS RI
INNER JOIN 
    (SELECT FOOD_TYPE, MAX(FAVORITES) TOP_FAV
    FROM REST_INFO
    GROUP BY FOOD_TYPE) AS TOP
ON RI.FOOD_TYPE = TOP.FOOD_TYPE AND RI.FAVORITES = TOP.TOP_FAV
ORDER BY RI.FOOD_TYPE DESC
;