SQL分组统计查询教程

分组统计查询

2017年11月13日

20:36

统计函数

统计个数:count(* | [distinct]字段)

–count(*):明确地返回表中的数据个数,是最准确的。

–count(字段):不统计为null的数据个数。

–count([distinct]字段):统计消除重复数据后的数据个数。

max(字段)、min(字段)

sum(字段)、avg(字段)

分组统计查询

分组是部分数据具有共性。

分组子句group by

group by 分组字段,分组字段

select job,count(empno),avg(sal)

from emp

group by(job) ;

分组操作存在严格的限制

1、在没有编写group by子句的时候,那么select子句之中只允许出现统计函数,不允许出现任何的其他字段。

错误代码

正确代码

select count(empno),ename from emp ;

select count(empno) from emp ;

2、在使用group by子句分组字段的时候,select子句中只允许出现统计函数和分组字段

select job,count(empno),ename from emp group by job ;

select job,count(empno) from emp group by job ;

3、统计函数允许嵌套查询,但是嵌套后的统计查询中,select 子句里面不允许再出现任何的字段,包括分组字段,只能够使用嵌套的统计函数。

select deptno,max(avg(sal)) from emp group by deptno ;

select max(avg(sal)) from emp group by deptno ;

selectd.deptno,d.dname,d.loc,count(e.empno),trunc(avg(months_between(sysdate,hiredate)/12))year

from dept d,emp e

where d.deptno = e.deptno(+)

group by d.deptno,d.dname,d.loc ;

having子句对分组后的数据筛选

【⑤确定要显示的数据列】select [distinct] 分组字段[别名]| 统计函数

【①确定要查找的数据来源】from

【②针对数据进行筛选】where 条件

【③针对数据进行分组】group by 分组字段,分组字段,….

【④对分组后的数据筛选】having 条件

【⑥对返回结果排序】order by 字段 [asc | desc],…,…

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐