Если вы выполняете поиск в силу предложения GROUP BY
, любое выражение в SELECT
, которое не является групповой функцией (или агрегатной функцией или агрегированной колонкой), например COUNT
, AVG
, MIN
, MAX
, SUM
и т. д. ( Список функций агрегации ) должен присутствовать в GROUP BY
.
Пример (правильный путь) (здесь employee_id
негрупповая функция (неагрегированный столбец), поэтому в GROUP BY
появляется . Напротив, сумма (зарплата) представляет собой групповую функцию (агрегированный столбец), поэтому не требуется появляться в GROUP BY
.
SELECT employee_id, sum(salary)
FROM employees
GROUP BY employee_id;
Пример (неправильный путь) (здесь employee_id
не является групповой функцией и не появляется в предложении GROUP BY
, что приведет к ошибке ORA-00979 .
SELECT employee_id, sum(salary)
FROM employees;
Чтобы исправить, вам нужно сделать one из следующего:
SELECT
в разделе GROUP BY
SELECT
.