본문 바로가기
SQL

programmers : 즐겨찾기가 가장 많은 식당 정보 출력하기

by sooyeoon 2023. 1. 16.

즐겨찾기가 가장 많은 식당 정보 출력하기

SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES
FROM (SELECT FOOD_TYPE, REST_ID, REST_NAME, SUM(FAVORITES) FAVORITES
      FROM REST_INFO
      GROUP BY REST_ID
      ORDER BY FOOD_TYPE DESC, FAVORITES DESC) RI
GROUP BY FOOD_TYPE

 

문제에서 음식종류별로 즐겨찾기 수가 가장 많은 식당의 정보를 출력하라고 되어있어서 처음부터  FOOD_TYPE을 GROUP BY 로 작성했는데, 생각해보니 해당 테이블에서 우선적으로 고유 음식점 ID별 즐겨찾기 수를 구한 다음 → FOOD_TYPE별 가장 높은 즐겨찾기 수를 가진 음식점의 정보를 출력하는 것이 맞는 순서라고 생각했다. 

 

그래서 일단 GROUP BY 와 SUM 으로 음식점마다 즐겨찾기 수를 구하고 정렬한 뒤, SELECT 에서 DISTINCT를 이용해 음식종류의 고유값을 구하려고 했으나 결과가 동일했다.

그래서 FROM절의 SUB QUERY를 이용해 출력했던 값을 다시 FOOD_TYPE으로 GROUP BY 해서 작성했고, 원하는 결과가 출력될 수 있었다.