본문 바로가기

프로그래머스(Oracle)

[프로그래머스 (Oracle)] 즐겨찾기가 가장 많은 식당 정보 출력하기

728x90

코드 힌트

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
728x90