[코딩테스트] 27. 즐겨찾기가 가장 많은 식당 정보 출력하기

윤설안's avatar
Apr 14, 2025
[코딩테스트] 27. 즐겨찾기가 가장 많은 식당 정보 출력하기

테이블 index

📌

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

Column name
Type
Nullable
REST_ID
VARCHAR(5)
FALSE
REST_NAME
VARCHAR(50)
FALSE
FOOD_TYPE
VARCHAR(20)
TRUE
VIEWS
NUMBER
TRUE
FAVORITES
NUMBER
TRUE
PARKING_LOT
VARCHAR(1)
TRUE
ADDRESS
VARCHAR(100)
TRUE
TEL
VARCHAR(100)
TRUE

문제

💡
REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요.

예시

notion image

풀이

❗
단순하게 max함수를 사용하여서 푸는 문제인줄 알았다. 하지만 계속 오답이라고 하여서 검색을 해본 결과. group by를 하였을 때는 각 그룹의 첫 번째 행으로 겹쳐지기 때문에 FAVORITES만 가장 높은 값이 나오고 나머지 3개의 column은 각 그룹의 첫 번째 행의 데이터가 출력되었던 것이다.
SELECT FOOD_TYPE, REST_ID, REST_NAME, max(FAVORITES) FAVORITES from REST_INFO group by FOOD_TYPE order by FOOD_TYPE desc
notion image
그래서 사용한 방법은 SubQuery이다. SubQuery를 사용하여 먼저 FAVORITES이 가장 많은 데이터를 출력 후 그 이후에 한번 더 group by를 하여서 푸는 문제였다.
select FOOD_TYPE, REST_ID, REST_NAME, FAVORITES from REST_INFO where FAVORITES in (SELECT max(FAVORITES) from REST_INFO group by food_type) group by food_type order by food_type desc
notion image
 
Share article