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만 교집합을 통해 만들어냄
'SQL 문제풀이' 카테고리의 다른 글
[프로그래머스 SQL] LV.4 식품분류별 가장 비싼 식품의 정보 조회하기 (0) | 2023.08.04 |
---|---|
[프로그래머스 SQL] LV.3 없어진 기록 찾기 (0) | 2023.08.04 |
[프로그래머스 SQL] LV.2 3월에 태어난 여성 회원 목록 출력하기 (0) | 2023.08.04 |
[프로그래머스 SQL] LV.1 평균 일일 대여 요금 구하기 (0) | 2023.08.04 |
[프로그래머스 SQL] LV.1 모든 레코드 조회하기 (0) | 2023.08.04 |