SQL

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

hminor 2023. 7. 13. 10:07
-- 성공 코드
-- 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