select deptno,max(count(*)) from emp group by deptno
其中max(count(*))相当于2次分组,那么对应的select 中的其他列也需要进行2次分组,比如说:
select max(deptno),max(count(*)) from emp group by deptno
原因很简单,sql语言就面向集合的,如果求出来max(count(*)),那么deptno需要对应的是哪一条呢?
出现“不是单组分组函数”是因为分组后只能用一些汇总的函数,不能用查询“*”,因为非分组的值不属于任何分组,所以就报错了。
举例: 通过group by进行分组后,可以通过sum进行求和,count进行数值计算。
sql:select username ,count(accountNo) as count,sum(amount) as amount
from tablename group by username;
以上就可以求出username下,accountNo的条数和对应的总amount。