프로그래머스(Oracle)
[프로그래머스 (Oracle)] 즐겨찾기가 가장 많은 식당 정보 출력하기
shs00925
2024. 10. 5. 16:43
코드 힌트
1. 서브쿼리 사용
- 서브쿼리를 통해 각 음식 종류별로 가장 많은 즐겨찾기를 받은 식당의 정보를 추출합니다.
- 이 서브쿼리는 음식 종류(Food Type)와 그에 대한 최대 즐겨찾기 수(Favorites)를 반환합니다.
2. 조인 조건
- 원본 REST_INFO 테이블과 서브쿼리 결과(MAX_I)를 조인하여 최대 즐겨찾기를 가진 식당의 세부 정보를 가져옵니다.
- 조인은 음식 종류와 즐겨찾기 수를 기준으로 수행합니다.
3. 정렬
- 결과는 음식 종류(Food Type)를 기준으로 내림차순으로 정렬되어, 가장 인기 있는 음식 종류가 먼저 나타나도록 합니다.
정답은 더보기 클릭
더보기
더보기
SELECT I.FOOD_TYPE, I.REST_ID, I.REST_NAME, I.FAVORITES
-- 음식 종류(Food Type), 식당 ID(REST_ID), 식당 이름(REST_NAME), 즐겨찾기 수(Favorites)를 조회합니다.
FROM REST_INFO I
JOIN (SELECT FOOD_TYPE, MAX(FAVORITES) AS FAVORITES
-- REST_INFO 테이블에서 음식 종류별로 최대 즐겨찾기 수를 찾습니다.
FROM REST_INFO
GROUP BY FOOD_TYPE) MAX_I
-- 최대 즐겨찾기 수를 가진 식당 정보를 원본 REST_INFO와 조인합니다.
ON I.FOOD_TYPE = MAX_I.FOOD_TYPE
AND I.FAVORITES = MAX_I.FAVORITES
-- 음식 종류를 기준으로 내림차순 정렬합니다.
ORDER BY I.FOOD_TYPE DESC