with f_cnt as(
select food_type, max(favorites) as favorites
from rest_info
group by 1
)
SELECT r.food_type, r.rest_id, r.rest_name, max(r.favorites)
from rest_info r
join f_cnt f on f.food_type = r.food_type and f.favorites = r.favorites
group by 1
order by 1 desc
다른문제에서도 겪었던 문제인데 group by 사용했을 때 매핑이 제대로 되지 않아 따로 with문이나 서브쿼리를 이용하여 매핑 진행한 후에 다시 비교하여 일치하는 레코드들만 출력하는 방식으로 문제를 해결했다.
'프로그래머스 > 코딩테스트 연습' 카테고리의 다른 글
SQL lv4 언어별 개발자 분류하기 (0) | 2024.05.02 |
---|---|
SQL lv3 물고기 종류 별 대어 찾기 (0) | 2024.04.30 |
SQL lv4 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (3) | 2024.04.29 |
SQL lv3 카테고리 별 도서 판매량 집계하기 (0) | 2024.04.24 |
SQL lv4 식품분류별 가장 비싼 식품의 정보 조회하기 (0) | 2024.04.24 |