设为首页 加入收藏

TOP

SQL分组统计查询教程
2017-12-23 06:07:08 】 浏览:795
Tags: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],…,…

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇SQL多表查询详解 下一篇关系数据库标准语言SQL数据类型及..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目