Welcome! Everything is fine.

[프로그래머스/Lv.3] 즐겨찾기가 가장 많은 식당 정보 출력하기 - MySQL 본문

프로그래머스/SQL

[프로그래머스/Lv.3] 즐겨찾기가 가장 많은 식당 정보 출력하기 - MySQL

개발곰발 2024. 3. 30.
728x90

📌 문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

📌 제출한 오답

여기서 MAX(FAVORITES)는 특정 행의 FAVORITES과 비교될 수 없다.

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

📌 정답

먼저 서브 쿼리를 이용해 음식종류별로 가장 많은 즐겨찾기수를 찾아야 한다. 이렇게 서브 쿼리에서 나온 결과를 바탕으로 기본 쿼리의결과를 필터링 할 수 있다.

SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES
FROM REST_INFO
WHERE FAVORITES IN (SELECT MAX(FAVORITES) FROM REST_INFO GROUP BY FOOD_TYPE)
GROUP BY FOOD_TYPE
ORDER BY FOOD_TYPE DESC