Как вставить условие SUM в SQL? - PullRequest
0 голосов
/ 22 июня 2019

Я хочу выбрать из таблицы сотрудников только те отделы, где общая сумма зарплат превышает 150000. К сожалению, я не могу использовать «где сумма (e.salary)> 150000», потому что я получаю «ORA-00934»: групповая функция не допускается здесь "ошибка.Любая идея, как я мог бы реализовать фильтр?

SELECT e.department_id, sum(e.salary) summ
FROM employees e
//where sum(e.salary)>150000
group by e.department_id

1 Ответ

3 голосов
/ 22 июня 2019

Да, переместите свою логику в предложении WHERE в предложение HAVING:

SELECT e.department_id, SUM(e.salary) summ
FROM employees e
GROUP BY e.department_id
HAVING SUM(e.salary) > 150000;

Ограничения в предложении WHERE применяются к таблице до происходит агрегация в GROUP BY.Ограничения в предложении HAVING имеют место после GROUP BY.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...