聚合函数
- 不会计算值为
null
的记录 - 可以与
distinct
搭配使用:函数(distinct 字段名1, 字段名2)
- 和聚合函数一同查询的字段,必须跟在
group by
后参与分组
count ( )
返回某字段的行数
select count(`id`) as '总数' from `students`;
select count(distinct, `name`) as '总人数' from `students`; -- 与 distinct 搭配使用
select count(*) as '总行数' from table;
count(常量)
→count(*)
select count(1) as '总行数' from table;
- MYISAM 存储引擎下,
count(*)
效率较高 - INNODB 存储引擎下,
count(*)
&count(1)
的效率差不多,count(字段)
效率较低(要判空)
max ( )
返回某字段的最大值
select max(`score`) as '最高分' from `students`;
min ( )
返回某字段的最小值
select min(`age`) as '最年轻' from `students`;
sum ( )
返回某字段的总值
select sum(`score`) as '总分' from `students` where `id` = 1;
select sum(distinct `score`) as '总分' from `students`; -- 与 distinct 搭配使用
avg ( )
返回某字段的平均值
- 和聚合函数一同查询的字段,必须跟在
group by
后参与分组
select avg(`score`) as '平均成绩', `id` from `stuScore` group by `id`;
sum
&avg
一般用于处理数值型
max
&min
&count
可以处理任何数据类型