강의로 돌아가기
Yujin Yang

이 코드는 어떤 부분이 잘못되었나요?

SELECT FOOD_TYPE, REST_ID, REST_NAME, MAX(FAVORITES)
FROM REST_INFO
GROUP BY FOOD_TYPE
ORDER BY FOOD_TYPE DESC;
  • ext3fs

    흠.. 이게 에러가 안뜨네요.. 일단 food_type으로 group by 했으니.. food_type과 그룹함수들(max(),sum(),등등)만 유효한 select 입니다.. 왜냐면.. 그 외 칼럼들은 여러개가 나올수 있기 때문이죠.. 위에 정답 올려놨으니.. 비교해보세요..

    ext3fs―2022.10.07 14:48
  • 김태경

    저도 저렇게 똑같이 쓰고 틀렷네요 ㅠㅠ 초보라 설명이 이해가 안되는데 추가 댓글 가능하신분있나요

    김태경―2022.10.07 21:39
  • sunghun19981210@gmail.com

    food_type으로 group by를 했으니, food_type과 MAX(Favorites)에 대한 값은 정확하게 나옵니다. 하지만 REST_ID와 REST_NAME의 경우엔 해당 그룹의 첫 번째 행에 있는 값이 나올 거에요!

    sunghun19981210@gmail.com―2022.10.08 00:15
  • 배진우

    해당 쿼리는 mysql에서는 작동할 수 있지만 엄격한 group by에서는 작동하지 않아요. 왜냐하면 group by는 원래 aggregate function이랑 함께 쓰여야 하고 지금 본인이 쓴 쿼리에서는 food_type, rest_id, rest_name이 어떤 row를 가져올지 모르는 상황입니다.

    배진우―2022.10.10 21:00
  • Yujin Yang

    설명 감사합니다!!

    Yujin Yang―2022.10.15 17:47
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다.