【发布时间】:2016-01-12 06:58:43
【问题描述】:
SELECT e.employee_id, e.last_name, e.salary, e.department_id, d.department_name
FROM employees e, departments d
WHERE e.department_id = d.department_id
GROUP BY d.department_id, d.department_name;
输出:
SQL> SELECT e.employee_id, e.last_name, e.salary, e.department_id, d.department_name
2 FROM employees e, departments d
3 WHERE e.department_id = d.department_id
4 GROUP BY d.department_id, d.department_name;
SELECT e.employee_id, e.last_name, e.salary, e.department_id, d.department_name
*
ERROR at line 1:
ORA-00979: not a GROUP BY expression
这段代码有什么问题? 我想要所有的 cloumn (e.employee_id, e.last_name, e.salary, e.department_id, d.department_name) 并且还想 group by 与 (d.department_id, d.department_name) 有没有可能?
【问题讨论】:
-
你得到什么输出?你的预期输出是什么?
-
SELECT e.employee_id, e.last_name, e.salary, e.department_id, d.department_name * 第 1 行出现错误:ORA-00979:不是 GROUP BY 表达式
-
我希望所有列都作为输出并仅按 (d.department_id, d.department_name) 分组...这可能吗?
-
不,这是不可能的。
-
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI
JOIN语法-92 SQL 标准(20 多年前),不鼓励使用它