第六章: 聚合查询 与 分组
2016-01-11 22:51
295 查看
第六章: 聚合查询 与 分组
概述
在查询分析的SQL中我们经常会对一些数据进行统计查询。比如统计某个班有多少个学生、全班总分多少、平均分多少、最高分是多少、最低分是多少。要实现这些数据的统计就需要要用到SQL提供的聚合函数。
聚合函数的分类
COUNT:统计行数量
SUM:获取单个列的合计值
AVG:计算某个列的平均值
MAX:计算列的最大值
MIN:计算列的最小值
注: 聚合函数不能与其他列搭配使用只能单列使用执行行和列计数(COUNT)
行计数可以统计返回的结果中有多少行数据
标准结构:SELECT COUNT(<计数规范>) FROM <表名>
*
计数所有选择的行,包括NULL值
ALL 列
计数指定列的所有的非空值行。如果仅仅是指定列而不带ALL或者DISTINCT,这是默认操作。
DISTINCT 列 计数指定列的所有唯一非空值行。
计数规范(*)
* 表示统计所有行,包括NULL值。
举例
统计班上一共有多少个学生
SELECT COUNT(*) FROM t_student
也可以加入查询条件。例如:统计男生有多少人?
SELECT COUNT(*) FROM t_student WHERE 性别=‘男
——返回列合计值(sum)
语法:select sum(计数规范) from 表名;
与count的区别:没有*,只能是求整型,和浮点数;
——获取列的平均值(avg)
语法:select avg (平均值规范 )from 表名;
注;会过滤掉null的值,可以使用all 和distinct
[b]——返回最大值和最小值:
[/b]
[b]语法:select max(或min)<最大(小)值规范> from 表名;[/b]
注:会排除为null的值,没有 * ,all ,distinct
——数据分组:group by
语法:select 列A,聚合函数(聚合函数规范) from 表名
where 过滤条件
group by 列;
注 : where 后面不能跟聚合函数!!!!
——使用having:
注:后面跟聚合函数语句
sql语句的执行顺序:
select子句;
from 子句;
where子句;
group by 子句;
having 子句;
Oder by 子句;
limit 子句;
where与having的区别:二者都是过滤条件,where是分组前运行(过滤非聚合函数);having 是在分组后运行(只能用于聚合函数的过滤);
相关文章推荐
- linux命令之文件、文件夹操作
- 学会这十点工作经验 可以让你少走很多路
- [二]java运行原理
- WPF与WINFORM的选择
- 【学神-RHEL7】P3-文件操作和列表的使用
- 寒假培训——简单搜索
- JAVA设计模式(DESIGN PATTERNS IN JAVA)读书摘要 第1部分接口型模式——第3章 适配器(Adapter)模式
- STL算法库-数字运算(一)
- 博客之路
- WPF值不值得学,微软WPF技术的前世今生
- HeadFirstC
- Ghost硬盘对拷
- 如何成为一家顶级域名注册商及如何提供域名注册
- 依赖注入
- python练习之编写登录接口
- hadoop2.6源码编译
- 利用opencv+flandmark 进行face detection, face alignment and crop
- Java Swing JTable 表格【12:为表格的单元格指定文字说明】
- 常用算法总结
- 思维拓展训练中的创新游戏设计