汇集函数(《MySQL必知必会》中称其为聚集函数)主要是处理整个表的一列或几列的数据
-
sum()
求和 -
avg()
求平均值 -
max()
求最大值或尾行数据 -
min()
求最小值或首行数据 -
count()
统计 计数
- sum() avg() 主要用于对
数值
进行统计和计算;min() max() count() 都可以- 以上所有的函数都默认忽略null,但是COUNT()统计所有行数,不忽略null
COUNT(1)也可以用于统计所有函数
在MYISAM存储引擎下,COUNT()的效率高
在INNODB存储引擎下,COUNT(*)和COUNT(1)差不多,但是比COUNT(字段)高- min() max()遇到字符类型时,返回第一行或最后一行
- 与distinct搭配,先去重,然后再统计分析
- 和分组函数一同查询的字段要求是group by后的字段
针对第4条
SELECT SUM(DISTINCT salary) ,SUM(salary) FROM employees; --第一列的含义是找出工资不重样的各个工资数据,然后求和
SELECT COUNT(DISTINCT salary),COUNT(DISTINCT commission_pct) FROM employees;
案例:
1.查询员工工资的最大值、最小值、平均值和总和
SELECT MAX(salary),MIN(salary),AVG(salary),SUM(salary) FROM employees;
2.查询员工表中的最大入职时间和最小入职时间的相差天数
SELECT MAX(hiredate),MIN(hiredate),DATEDIFF(MAX(hiredate),MIN(hiredate))
AS DIFFERENCE
FROM employees;
3.查询部门编号为90的员工个数
SELECT COUNT(department_id) FROM employees
WHERE department_id = 90;