✅ 코드
SELECT T2.FOOD_TYPE AS FOOD_TYPE
, T2.REST_ID AS REST_ID
, T2.REST_NAME AS REST_NAME
, T2.FAVORITES AS FAVORITES
FROM (SELECT FOOD_TYPE, MAX(FAVORITES) AS FAVORITES
FROM REST_INFO
GROUP BY FOOD_TYPE) AS T1
INNER JOIN REST_INFO AS T2 ON T1.FOOD_TYPE = T2.FOOD_TYPE
AND T1.FAVORITES = T2.FAVORITES
ORDER BY FOOD_TYPE DESC;
서브쿼리를 사용한 풀이입니다.
🔎 참고
SELECT FOOD_TYPE
, REST_ID
, REST_NAME
, MAX(FAVORITES)
FROM REST_INFO
GROUP BY FOOD_TYPE
ORDER BY FOOD_TYPE DESC;
위 코드가 통과되지 않는 이유는 FOOD_TYPE, REST_ID, REST_NAME은 그룹화 이후 첫번째 행에 위치한 레코드에서 해당 값들을 가져오지만 MAX(FAVORITES)는 각 그룹별 최대값을 가져오기 때문입니다.
다시 말해서 첫 3개의 값들과 마지막 값은 동일한 레코드에서 가져온 값이 아니게 됩니다.
'알고리즘' 카테고리의 다른 글
[SQL]프로그래머스 Lv.3 없어진 기록 찾기 (0) | 2023.08.08 |
---|---|
[SQL]프로그래머스 Lv.2 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2023.08.07 |
[SQL]프로그래머스 Lv.3 조건별로 분류하여 주문상태 출력하기 (0) | 2023.08.07 |
[SQL]프로그래머스 Lv.2 가격대별 상품 개수 구하기 (0) | 2023.08.07 |
[SQL]프로그래머스 Lv.3 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2023.08.07 |