我试图理解没有聚合函数的 GROUP BY (对 oracledbms 来说是新的)。
它是如何运作的?
这是我试过的方法。
我将在其上运行我的 SQL 的 EMP 表。
SELECT ename , sal
FROM emp
GROUP BY ename , sal
SELECT ename , sal
FROM emp
GROUP BY ename;
结果
ORA-00979: 不是 GROUP BY 表达式
00979.00000-“ not a GROUP BY expression”
* 原因:
* 行动:
错误行: 397列: 16
SELECT ename , sal
FROM emp
GROUP BY sal;
结果
ORA-00979: 不是 GROUP BY 表达式
00979.00000-“ not a GROUP BY expression”
* 原因:
* 操作: 第411行错误
SELECT empno , ename , sal
FROM emp
GROUP BY sal , ename;
结果
ORA-00979: 不是 GROUP BY 表达式
00979.00000-“ not a GROUP BY expression”
* 原因:
* 操作: 第425行错误
SELECT empno , ename , sal
FROM emp
GROUP BY empno , ename , sal;
所以,基本上列的数量必须等于 GROUP BY 子句中的列的数量,但是我仍然不明白为什么或者发生了什么。