문제

REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요.

쿼리

SELECT food_type, rest_id, rest_name, favorites
FROM rest_info
JOIN (SELECT MAX(favorites) AS max_favorites
      FROM rest_info
      GROUP BY food_type) AS t
ON rest_info.favorites = t.max_favorites
GROUP BY food_type
ORDER BY food_type DESC
;

풀이

  1. food_type별로 가장 많은favorites 수를 뽑는다.
    (SELECT MAX(favorites) AS max_favorites
    FROM rest_info
    GROUP BY food_type) AS t
    
max_favorites
734
230
102
151
20
  1. 1번에서 뽑은 테이블과 rest_info 테이블을
    favorites 기준으로 조인한다.
    FROM rest_info
    JOIN (SELECT MAX(favorites) AS max_favorites
       FROM rest_info
       GROUP BY food_type) AS t
    ON rest_info.favorites = t.max_favorites
    
  2. food_type 기준으로 GROUP BY
    GROUP BY food_type
    
  3. food_type 기준으로 내림차순 정렬
    ORDER BY food_type DESC
    

Leave a comment