본문 바로가기

코딩테스트/SQL - 프로그래머스

SQL 고득점 kit(GROUP BY) - 즐겨찾기가 가장 많은 식당 정보 출력하기

 

 

-- 풀이
WITH MAX_FAV AS (
    SELECT FOOD_TYPE
         , MAX(FAVORITES) AS FAVORITES
        FROM REST_INFO
        GROUP BY FOOD_TYPE
)
SELECT R.FOOD_TYPE
     , R.REST_ID
     , R.REST_NAME
     , M.FAVORITES
    FROM REST_INFO R
    JOIN MAX_FAV M
        ON R.FAVORITES = M.FAVORITES
    GROUP BY FOOD_TYPE
    ORDER BY FOOD_TYPE DESC

 

 - 해설

1. WITH절로 FOOD_TYPE별 가장 높은 FAVORITES를 출력하는 MAX_FAV라는 테이블을 만듦.

2. 기존 REST_INFO 테이블과 JOIN해서 FOOD_TYPE별로 MAX_FAV의 FAVORITES와 같은 FAVORITES를 갖는 식당의 정보(=FOOD_TYPE별 가장 높은 FAVORITES를 갖는 식당의 정보)를 출력함.