SELECT FOOD_TYPE, REST_ID, REST_NAME, MAX(FAVORITES)
FROM REST_INFO
GROUP BY FOOD_TYPE
ORDER BY FOOD_TYPE DESC;
흠.. 이게 에러가 안뜨네요.. 일단 food_type으로 group by 했으니.. food_type과 그룹함수들(max(),sum(),등등)만 유효한 select 입니다.. 왜냐면.. 그 외 칼럼들은 여러개가 나올수 있기 때문이죠.. 위에 정답 올려놨으니.. 비교해보세요..
저도 저렇게 똑같이 쓰고 틀렷네요 ㅠㅠ 초보라 설명이 이해가 안되는데 추가 댓글 가능하신분있나요
food_type으로 group by를 했으니, food_type과 MAX(Favorites)에 대한 값은 정확하게 나옵니다. 하지만 REST_ID와 REST_NAME의 경우엔 해당 그룹의 첫 번째 행에 있는 값이 나올 거에요!
해당 쿼리는 mysql에서는 작동할 수 있지만 엄격한 group by에서는 작동하지 않아요. 왜냐하면 group by는 원래 aggregate function이랑 함께 쓰여야 하고 지금 본인이 쓴 쿼리에서는 food_type, rest_id, rest_name이 어떤 row를 가져올지 모르는 상황입니다.
설명 감사합니다!!