inblog logo
|
An's Blog
    코딩테스트SQL

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

    윤설안's avatar
    윤설안
    Apr 14, 2025
    [코딩테스트] 27. 즐겨찾기가 가장 많은 식당 정보 출력하기
    Contents
    테이블 index문제예시풀이

    테이블 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
    Contents
    테이블 index문제예시풀이

    An's Blog

    RSS·Powered by Inblog