oracle报错不是单组分组函数
(2016-08-16 13:38:01)
标签:
不是单组分组函数报错 |
分类: oracle |
解释是苍白,直接上例子!!!
30
7
20
5
10
2
30
7
20
5
10
2
DEPTNO
MAX
30
7
SQL> select deptno,count(*) from emp;
select deptno,count(*) from emp
ORA-00937: 不是单组分组函数
首先,在使用聚合函数时,若要显示其他列,要加入group by 对某一列进行分组
结果如下:
SQL> select deptno,count(*) from emp group by deptno;
DEPTNO COUNT(*)
------ ----------
我还想继续分组,比如这样
SQL> select max(deptno),count(*) from emp group by deptno
;
MAX(DEPTNO) COUNT(*)
----------- ----------
这好像与上面一样啊,当然一样啦,因为进行了分组,每组的组号都是一样的,最大值肯定还是本身啦
我要找人数最多的部门号,那我们就这样:
SQL> select max(deptno) deptno,max(count(*)) max from emp
group by deptno ;
---------- ----------
那又有人说了,我不这样,我直接这样为什么不行
SQL> select deptno,max(count(*)) max from emp group by
deptno ;
select deptno,max(count(*)) max from emp group by deptno
ORA-00937: 不是单组分组函数
就会报错说不是单组分组函数了因为
sql语言就面向集合的,如果求出来max(count(*)),那么deptno需要对应的是哪一条
我们加入max(deptno) 选出一个来与其进行对应!