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

정원석·2024년 3월 2일

문제

정답

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

해설

  • 출력해야 할 SELECT절을 먼저 작성한다. 이 후 REST_INFO 테이블에서 FAOVIRTES가 가장 큰 식당을 찾아야 한다.
  • 서브쿼리를 사용하지 않으면 FOOD_TYPE 은 같지만 REST_NAME
    이 다른 행을 구별하지 못한다.
  • IN절 안에서 FAVORITES가 최대인 REST_NAME 을 찾는다.
  • WHERE (FOOD_TYPE, FAVORITES) 을 이용해 주요 쿼리는 각 FOOD_TYPE
    및 해당 FOOD_TYPE에서의 최대 FAVORITES값을 가진 행에 대해 조건을 적용한다. 이렇게 함으로써 최대 인기를 가진 식당에 대한 정보만 포함하게 한다.
profile
Back-End-Dev

0개의 댓글