• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

max랑 count를 이렇게 이용하는 건 안되나요?

21.01.10 19:28 작성 조회수 1.33k

0

SELECT MAX(salary*months) ,COUNT(MAX(salary*months))

FROM employee

에러가 아래와 같이 나는 걸로 봐서는

함수를 저런식으로 쓰면 안된다는 거 같은데

왠지 잘 모르겠어요!ㅠㅠ

  • ERROR 1111 (HY000) at line 16: Invalid use of group function

답변 1

답변을 작성해보세요.

1

안녕하세요 D D님 :)

올려주신 쿼리에서는 두 가지 문제가 확인됩니다.

1. GROUP BY를 이용하여 그룹핑을 하면서 집계함수 연산을 사용하실 때에는 반드시 집계 기준이 되는 컬럼을 명시해주신 후, 집계 함수(MAX, COUNT 등)를 나열해주셔야 합니다.

2. 집계함수(COUNT) 안에 또다른 집계함수(MAX)를 중첩해서 사용하실 수는 없습니다.

MySQL 또한 컴퓨터에게 일을 시키기 위해 약속된 하나의 언어이므로 정확히 문법을 지켜주시지 않으면 동작을 하지 않습니다.

관련하여 문법을 참고하실 수 있는 MySQL 문서를 첨부드립니다.

https://dev.mysql.com/doc/refman/8.0/en/counting-rows.html

궁금증이 해결되셨길 바랍니다. 감사합니다.