分组函数
1 MIN :最小值
2 MAX :最大值
3 SUM : 求和
4 AVG : 平均值 保留小数点后四位 默认int类型
5 COUNT : 计算
使用方法:
image.png
MIN和MAX函数:返回每组的最小或最大值
可用于任何数据类型
image.png
应用:
image.png
SUM和AVG函数:返回每组的总和或平均值
只对数值类型的列或表达式操作
image.png
应用:
image.png
COUNT函数:查询每组记录条数
image.png消除空值:
image.png
分组函数中空值的处理
出了count(*)外,其他分组函数都会忽略列中的空值
在分组函数中使用IS NULL函数
IS NULL函数:可以使分组函数强制包含含有空值的记录
创建数据组
使用GROUP BY 子句创建数据组:
image.pngimage.png
注意:查询的列 和 分组根据的列可不一致
排除组结果(为分组添加限制条件)
注意:不能用where子句限制组,限制组要用过having子句
image.png
例:
image.png
SELECT 语句执行过程
1.from子句找到需要查询的表
2.where子句进行非分组函数筛选判断
3.group by 子句完成分组操作
4.having 子句完成分组函数筛选判断
5.select子句选择显示的列或表达式及组函数
6.order by子句排序
子查询
子查询:一个查询语句的结果作为另一个查询语句的条件(内部查询)
子查询可以嵌于以下sql子句中:
where子句 having子句 from子句
例:
image.png
使用指导:
1.要用括号括起来
2.要放在比较运算符右边
3.单行子查询使用单行运算符
4.多行子查询使用多行运算符
类型:
1.单行子查询
2.多行子查询
3.多列子查询
单行子查询:子查询只返回一行一列
使用单行运算符:
image.png
多行子查询:子查询返回记录的条数,可以使一条或多条
多行运算符:IN ANY ALL
IN:判断是否与子查询中的任意一个返回值相同
image.pngANY:比较有一个满足条件即可
<ANY:小于子查询中任意一个就可以
.>ANY:大于子查询中任意一个就可以
=ANY:相当于IN
例:
image.png
ALL:每一行都要满足条件
<ALL:小于所有行
.>ALL:大于所有行
=ALL:无意义
例
子查询中的空值
image.pngFROM子句中的子查询
查询获取的数据可以看作是一个新的表,要设置别名
image.png
网友评论