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

임정민·2023년 5월 24일

SQL 문제풀이

목록 보기
40/53
post-thumbnail

SQL 공부중 입니다. ✍✍✍

문제

https://school.programmers.co.kr/learn/courses/30/lessons/131123

풀이

SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES
    FROM REST_INFO
    GROUP BY FOOD_TYPE
    HAVING FAVORITES = MAX(FAVORITES)
    ORDER BY FOOD_TYPE DESC;

이번 문제는 조금 까다로웠습니다. 문제에서 요구하듯 FOOD_TYPE 별로 FAVORITES가 가장 많은 식당을 구해야했는데 위 SQL 구문으로 작성 시

'일식' FOOD_TYPE 이 출력되지 않아 고민 끝에 다른 유저들의 풀이를 참고하여 해결하였습니다.😔😔😔

아래와 같이 WHERE - IN 구문안에 서브쿼리를 활용한 풀이입니다.

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;

WHERE (컬럼1,컬럼2) IN (SELECT 컬럼1,컬럼2 FROM~)은 처음보는 형태의 SQL구문이었습니다. GROUP BY 구문을 서브쿼리로 작성하고 SELECT 된 값들을 조건문으로 비교하는 방식이었습니다. 앞으로 이와 같이 WHERE 조건문에도 서브쿼리를 적용하는 방식으로도 해결해보도록 하겠습니다.🐼🐼🐼

감사합니다.

profile
https://github.com/min731

0개의 댓글