문제 출저
https://school.programmers.co.kr/learn/courses/30/lessons/131123
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
REST_INFO 테이블에서 음식 종류 별로 즐겨찾기 수가 가장 많은 식당의 정보를 음식 종류를 기준으로 내림차순해서 조회합니다.
음식종류별로 즐겨찾기 수가 가장 많은 식당을 선택해야 합니다. WHERE에서 IN을 이용합니다. 서브쿼리를 통해 종류별로 즐겨찾기가 많은 수를 찾아 FOOD_TYPE, FAVORITES를 반환하고 REST_INFO에서 해당 레코드의 데이터를 출력합니다.
서브쿼리는 GROUP BY를 통해 종류별로 나타내고 MAX를 통해 가장 많은 즐겨찾기를 구합니다.
SQL
SELECT
FOOD_TYPE,
REST_ID,
REST_NAME,
FAVORITES
FROM
REST_INFO
WHERE
(FOOD_TYPE, FAVORITES) IN (SELECT FOOD_TYPE, MAX(FAVORITES) FROM REST_INFO GROUP BY FOOD_TYPE)
ORDER BY
FOOD_TYPE DESC;