SQL 문제풀이
[프로그래머스 SQL] LV.3 즐겨찾기가 가장 많은 식당 정보 출력하기
냄비짱
2023. 8. 4. 22:38
728x90
❓ Question
❗ Answer
# Subquery - scalar 활용
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
# Subquery - inner view 활용
SELECT info.food_type, info.rest_id, info.rest_name, info.favorites
FROM rest_info info
INNER JOIN (SELECT food_type, MAX(favorites) favorites
FROM rest_info
GROUP BY food_type) fav
ON info.favorites = fav.favorites AND info.food_type=fav.food_type
ORDER BY info.food_type DESC;
📌 Discussion
- SUB QUERY 활용이 중요한 문제
- sclar 값을 활용해 원하는 row만 가져오거나(이건 favorite수만 같고 다른 업종이면 잘못된 결과 도출 가능)
- inner view JOIN을 통해 원하는 row만 교집합을 통해 만들어냄