用常用的EMP表举例吧~
select deptno,ename,job from emp group by deptno;
ORA-00979: not a GROUP BY expression???
一直没搞明白是为什么~~希望大家可以帮我讲解讲解~O(∩_∩)O谢谢
select deptno,ename,job from emp group by deptno;
ORA-00979: not a GROUP BY expression???
一直没搞明白是为什么~~希望大家可以帮我讲解讲解~O(∩_∩)O谢谢
你这写是想得到什么结果?
例如:
select deptno,max(ename),max(job) from emp group by deptno
或
select deptno,sum(sal) from emp group by deptno
在ename和job字段上既没有使用聚合函数,也没有将其放入group by 表达式中,所以是错误的,下
面的使用方式是正确的:
select deptno,ename,job,count(*) from emp group by deptno,ame,job;
select deptno,count(*) from emp group by deptno;
select deptno,sum(sal) from emp group by deptno;
如果是分组group by 那么select后面要跟上分组字段或者聚合函数等,你的name,job 既不是分组字段也不是聚合函数,因此报错!
你是不是想得到这样的显示效果哦?SQL> break on deptno;
SQL> select deptno,empno,ename,sal
2 from emp order by deptno; DEPTNO EMPNO ENAME SAL
---------- ---------- ---------- ----------
10 7782 CLARK 2450
7839 KING 5000
7934 MILLER 1300
20 7566 JONES 2975
7902 FORD 3000
7876 ADAMS 1100
7369 SMITH 800
7788 SCOTT 3000
30 7521 WARD 1250
7844 TURNER 1500
7499 ALLEN 1600
7900 JAMES 950
7698 BLAKE 2850
7654 MARTIN 1250