https://school.programmers.co.kr/learn/courses/30/lessons/131123

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

생각 흐름

  • group by에 사용되지 않은 컬럼들은 보통 순서의 맨 위의 컬럼 값을 가져온다.
  • 따라서 main 쿼리 절에서 group by를 사용하면 안 된다.
  • 서브쿼리 절로 food_type과 favorites의 max 값을 가져오고 메인 쿼리와 food_type과 favorites에 대해 inner join 시킨다.

 

 

select a.food_type, a.rest_id, a.rest_name, a.favorites
from rest_info a inner join (
    select food_type, max(favorites) as favorites
    from rest_info
    group by food_type 
) as b
on a.food_type = b.food_type and a.favorites = b.favorites
order by a.food_type desc

+ Recent posts