一、定义
**聚集函数(aggregate function)**运行在行组上,计算和返回单个指的函数
二、常见SQL聚集函数
函数 | 说明 |
---|---|
AVG() | 返回某列的平均值 |
COUNT() | 返回某列的行数 |
MAX() | 返回某列的最大值 |
MIN() | 返回某列的最小值 |
SUM() | 返回某列的总和 |
SQL还支持一系列标准偏差聚集函数
示例:
mysql> select avg(sal) from emp;
+-------------+
| avg(sal) |
+-------------+
| 2073.214286 |
+-------------+
1 row in set (0.01 sec)
mysql> select max(sal) from emp where deptno =20;
+----------+
| max(sal) |
+----------+
| 3000.00 |
+----------+
1 row in set (0.00 sec)
COUNT注意
- count(*):NULL值的列也会被统计在里面
- count(column):只统计非NULL值列的总数
三、聚集不同值(去重后聚集)
- 关键字:
DISTINCT
实例:
mysql> select avg(distinct deptno) from emp;
DISTINCT只能用于列名,不能用于计算或者表达式
四、组合聚集函数
select
语句可以根据需要包含多个聚集函数
实例:
mysql> select count(*),avg(sal),max(sal),min(sal),sum(sal) from emp;
+----------+-------------+----------+----------+----------+
| count(*) | avg(sal) | max(sal) | min(sal) | sum(sal) |
+----------+-------------+----------+----------+----------+
| 14 | 2073.214286 | 5000.00 | 800.00 | 29025.00 |
+----------+-------------+----------+----------+----------+
1 row in set (0.00 sec)