REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요.
서브쿼리로 조회할 정보 : 음식 종류별로 즐겨찾기수가 가장 많은 식당
SELECT
FOOD_TYPE,
REST_ID,
REST_NAME,
FAVORITES
FROM REST_INFO
WHERE (SELECT) -- 미완성
ORDER BY FOOD_TYPE DESC
SELECT
FOOD_TYPE,
REST_ID,
REST_NAME,
FAVORITES
FROM REST_INFO r1
WHERE FAVORITES = (
SELECT MAX(FAVORITES)
FROM REST_INFO r2
WHERE r2.FOOD_TYPE = r1.FOOD_TYPE
)
ORDER BY FOOD_TYPE DESC
윈도우 함수 (Window Function)
윈도우 함수는 행과 행 간의 관계를 쉽게 정의하기 위해 만들어진 함수
GROUP BY 없이도 그룹핑 연산을 수행할 수 있는 기능
SELECT
FOOD_TYPE,
REST_ID,
REST_NAME,
FAVORITES
FROM (
SELECT
FOOD_TYPE,
REST_ID,
REST_NAME,
FAVORITES,
ROW_NUMBER() OVER (PARTITION BY FOOD_TYPE ORDER BY FAVORITES DESC) as rn
FROM REST_INFO
) ranked
WHERE rn = 1
ORDER BY FOOD_TYPE DESC;