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


SELECT 절에서 FAVORITES에 서브쿼리를 사용하며 결과값이 여러개가 나오기 때문에 사용할 수 없다. 따라서 WHERE절에서 서브쿼리를 사용하여 FAVORITES가 가장 많은 것만 추출하도록 조건을 걸었다.
하지만 FOOD_TYPE별로 FAVORITES가 가장 큰 레스토랑을 찾기 위해 아래 코드를 사용하면FAVORITES 값이 동일한 경우, 다른 FOOD_TYPE을 가진 레스토랑이 결과에 포함되는 문제가 발생한다.

따라서 GROUP BY FOOD_TYPE을 한번 더 사용하던지 다른 풀이 처럼 조건을 걸어서 쿼리를 사용해야 FOOD_TYPE 별로 하나의 레스토랑만 선택할 수 있다.
SELECT
FOOD_TYPE, REST_ID, REST_NAME, FAVORITES
FROM
REST_INFO
WHERE FAVORITES IN (SELECT
MAX(FAVORITES)
FROM
REST_INFO
GROUP BY
FOOD_TYPE)
GROUP BY
FOOD_TYPE
ORDER BY
FOOD_TYPE DESC;
SELECT
FOOD_TYPE, REST_ID, REST_NAME, FAVORITES
FROM
REST_INFO
WHERE (FOOD_TYPE, FAVORITES) IN (SELECT
MAX(FAVORITES)
FROM
REST_INFO
GROUP BY
FOOD_TYPE)
ORDER BY
FOOD_TYPE DESC;