功能:用作统计使用,又称聚合函数或统计函数或组函数
分类:sum求和、avg求平均、max最大值、min最小值、count计算个数
1、简单使用
语法:sum(1个参数)
例:
SELECT SUM(salary) FROM employees;
SELECT ROUND(AVG(salary),2),MAX(salary),MIN(salary) FROM employees;
2、特点
(1)参数支持类型
sum、avg:数值型
min、max、count:任何类型
(2)是否忽略NULL值
sum、avg、min、max:忽略NULL值
count:计算非空值的个数,忽略NULL值
3、可以和distinct搭配使用实现去重的运算
例:
select sum(distinct salary),sum(salary)
from employees;
SELECT COUNT(DISTINCT salary),COUNT(salary)
FROM employees;
4、count函数的其他介绍
(1)统计总行数
SELECT COUNT(*) FROM employees; #任何一行中只要有一个不是NULL就加上
(2)额外加上列全1,统计1的个数,即为统计总行数(也可以是其他数值或字符)
SELECT COUNT(1) FROM employees;
效率问题:
MYISAM存储引擎下,count(*)效率最高
INNODB存储引擎下,count(*)和count(1)效率差不多,比count(字段)效率高一些
一般使用count(*)来统计行数
5、和分组函数一同查询的字段有限制
和分组函数一同查询的字段要求是group by后的字段
如:SELECT AVG(salary),employee_id FROM employees; #无意义
6、datediff(日期1,日期2) 计算两个日期相差的天数
SELECT
DATEDIFF(MAX(hiredate),MIN(hiredate))
FROM employees;