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만 교집합을 통해 만들어냄