[코딩테스트] 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

YunSeolAn