"分组依据"表达

Shu*_*ury 0 sql oracle

我在尝试打印department_id,department_name和每个部门的工资总额时遇到了一些问题,我无法弄清楚原因.我收到错误:00979 - "不是GROUP BY表达式"

在此输入图像描述

SELECT d.department_id, d.department_name, SUM(e.salary)
FROM departments d, employees e
WHERE d.department_id = e.department_id
GROUP BY d.department_id;
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 5

只需添加namegroup by表达式.在此过程中,还要修复查询以使用显式join语法:

SELECT d.department_id, d.department_name, SUM(e.salary)
FROM departments d JOIN
     employees e
     ON d.department_id = e.department_id
GROUP BY d.department_id, d.department_name;
Run Code Online (Sandbox Code Playgroud)

虽然您没有问,但我会指出您的查询版本确实有意义且符合ANSI标准(尽管大多数数据库不支持此功能).您通过主键进行聚合,因此允许引入其他列 - 尽管Oracle不支持此功能.