专栏目录请点击
简介
- 我们常用的聚合函数有
sum
(累加)/avg
(平均值)/max
(最大值)/min
(最小值)/count
(数量) - 一般用作统计使用,又被称为统计函数或者组函数
- 他们一般与分组函数一起使用,如果不与函数一起使用的话,整个表就相当于一组
- 分组函数都会忽略
null
值的统计
例子
简单使用
SELECT COUNT(*) FROM `student`; # 7
SELECT SUM(age) FROM `student`; # 148
SELECT MIN(age) FROM `student`; # 12
SELECT MAX(age) FROM `student`; # 30
SELECT AVG(age) FROM `student`; # 21.1429
与distinct一起使用
他会先进行去重,然后进行聚合函数的计算
SELECT SUM(DISTINCT age) FROM `student`;
与分组函数一起使用
他会统计每组中的数据
SELECT sex,MAX(age) FROM `student`
GROUP BY sex;
count
- COUNT(1),COUNT(*),COUNT(常量),COUNT(主键),COUNT(ROWID),COUNT(非空列):统计结果的行数是表中所有存在的行的总数,包括值为null的行为空行。
- COUNT(允许为空列):统计的行数不会包括字段值为null的行。
- COUNT(DISTINCT 列名):得到的结果是除去值为null和重复数据后的结果。
查看存储引擎
show variables like '%storage_engine%';
- 在MYISAM引擎下,
count(*)
的效率较高 - 在INNODB引擎下,
count(1)
与count(*)
效率差不多,count(*)
比count(字段)
好