ОШИБКА 1111 (HY000) в строке 1: неверное использование групповой функции - PullRequest
0 голосов
/ 13 марта 2020
SELECT COUNT(*) FROM EMPLOYEE WHERE (SALARY*MONTHS)=MAX(SALARY*MONTHS)

Я пытаюсь получить количество сотрудников, которые имеют самый высокий (зарплата * месяцев). Почему я получаю эту ошибку даже без группы? Это то, что я должен иметь это?

1 Ответ

2 голосов
/ 13 марта 2020

Вы получаете эту ошибку, потому что MAX() является функцией агрегирования, поэтому обычно MySQL ожидает GROUP BY.

. Для этой логики c вы можете использовать подзапрос :

SELECT COUNT(*)
FROM EMPLOYEE e
WHERE (e2.SALARY * e2.MONTHS) = (SELECT MAX(e2.SALARY* e2.MONTHS) FROM EMPLOYEE e2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...