Не используйте select distinct
:
select (e.salary * e.months), count(*)
from employee e
where (e.salary * e.months) = (select max(e2.salary * e2.months)
from employee e2
)
group by (e.salary * e.months);
Сообщение довольно ясно.У вас есть count(*)
, поэтому ваш запрос является запросом агрегации.Однако у вас есть неагрегированный столбец, поэтому MySQL сбит с толку: хотите агрегировать или нет?Отсюда и ошибка.
Вы также можете написать это как:
select (e.salary * e.months), count(*)
from employee e
group by (e.salary * e.months)
order by (e.salary * e.months) desc
limit 1;