반응형
-- 성공 코드
-- HAVING 절을 사용하지 않고 WHERE문과 SUBQUERY를 사용해서 푼 방식
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 된 상태에서 HAVING 절을 사용하게 되어도
-- 가장 상위에 있는 하나만 조회가 되어서 원하는 대로 조건을 추가하지 못한다고 한다.
SELECT FOOD_TYPE, REST_ID, REST_NAME, MAX(FAVORITES) AS FAVORITES
FROM REST_INFO
GROUP BY FOOD_TYPE
HAVING MAX(FAVORITES)
ORDER BY FOOD_TYPE DESC
'SQL' 카테고리의 다른 글
[프로그래머스] 카테고리 별 도서 판매량 집계하기 (0) | 2023.07.13 |
---|---|
[프로그래머스] 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2023.07.13 |
[프로그래머스] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2023.07.13 |
[프로그래머스] 식품분류별 가장 비싼 식품의 정보 조회하기 (0) | 2023.07.12 |
[프로그래머스] 성분으로 구분한 아이스크림 총 주문량 (0) | 2023.07.12 |