二、分组函数
功能:
用统计使用,又称为聚合函数或统计函数或者分组函数
分类:
sum 求和、avg 平均值、max 最大值、min 最小值、count 计算个数
特点:
1、sum、avg一般用于处理数值型
max、min、count可以处理任何类型
2、以上分组函数都忽略null值
3、可以和distinct搭配实现去重的运算
4、count函数的单独介绍一般使用count(*)用作统计行数
count效率:
MYISAM存储引擎下,count(*)的效率高
INNOB存储引擎下,count(*)和count(1)的效率差不多,比count(字段)要高一些
5、和分组函数一同查询的字段要求是group by后的字段
分组函数
语法:
select 分组函数,列(要求出现在group by的后面)
from 表
[where 筛选条件]
group by 分组的列表
[order by 子句]
注意:查询列表必须特殊,要求是分组函数和group by 后出现的字段
特点:
1、分组查询中的筛选条件分为两类
数据源 | 位置 | 关键字 | |
---|---|---|---|
分组前筛选 | 原始表 | group by子句的前面 | where |
分组后筛选 | 分组后的结果集 | group by子句的后面 | having |
1.分组函数做条件肯定是放在having子句中
2.能用分组前筛选的,就优先考虑使用分组前筛选
2、group by 子句支持单个字段分组,多个字段分组(多个字段之间用逗号隔开没有顺序要求),表达式或函数(用的比较少)
3、也可以添加排序(排序放在整个分组查询的最后)