코드 저장소.

[프로그래머스] LV.03 즐겨찾기가 가장 많은 식당 정보 출력하기 본문

코테/SQL

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

slown 2023. 3. 15. 19:01

문제

다음은 식당의 정보를 담은 REST_INFO 테이블입니다. REST_INFO 테이블은 다음과 같으며

 REST_ID, REST_NAME, FOOD_TYPE, VIEWS, FAVORITES, PARKING_LOT, ADDRESS, TEL은 식당 ID, 식당 이름, 음식 종류, 조회수, 즐겨찾기수, 주차장 유무, 주소, 전화번호를 의미합니다.

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

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

 

요구사항

-음식 종류별 / 즐겨찾기수가 가장 많은 식당

-음식 종류를 기준으로 내림차순으로 정렬하기.

 

답안

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;

처음에 group by를 사용해서 정렬을 하고 답안을 제출을 했는데 답안이 틀려서 한동안 고민을 많이 했었는데

검색을 해보니 생각보다 나와 비슷한 답안을 작성해서 틀리신 분이 많이 있었다...그래서 다른 답안으로 작성을

한것이 where절에 in을 넣어서 문제를 풀었다. 다시한번 관련 부분을 공부를 해야겠다...