汇总数据
简单来说就是对数据表的检索。观察它的最大值,最小值等
SQL聚集函数
函数 | 说明 |
---|---|
AVG() | 返回某列的平均值 |
COUNT() | 返回某列的行数 |
MAX( ) | 返回某列的最大值 |
MIN() | 返回某列的最小值 |
SUM() | 返回某列之和 |
AVG函数
AVG()函数可用来返回所有列的平均值,也可返回单个列的平均值。
SELECT AVG(salary) AS avg_salary FROM salaries;
输出:
+------------+
| avg_salary |
+------------+
| 63810.7448 |
+------------+
1 row in set (0.75 sec)
COUNT函数
两种使用方式:
- 使用COUNT(* ): 对表中行的数目进行计数,不管表列中包含的是空值还是非空值
- 使用COUNT(column): 对特定列中具有值的行进行计数,不包含NULL值
SELECT COUNT(emp_no) AS num_mem FROM employees;
输出:
+---------+
| num_mem |
+---------+
| 300024 |
+---------+
1 row in set (0.40 sec)
MAX函数
返回指定列中的最大值, 并且忽略NULL值。
如果MAX函数用于文本数据时,则返回最后一行。
SELECT MAX(salary) AS max_salary FROM salaries;
输出:
+------------+
| max_salary |
+------------+
| 158220 |
+------------+
1 row in set (0.59 sec)
MIN函数
返回指定列的最小值,忽略NULL值。
如果用于文本数据,则返回第一行。
SELECT MIN(salary) AS max_salary FROM salaries;
输出:
+------------+
| max_salary |
+------------+
| 38623 |
+------------+
1 row in set (0.62 sec)
SUM函数
返回所有指定列值的和
SELECT SUM(salary) AS max_salary FROM salaries;
+--------------+
| max_salary |
+--------------+
| 181480757419 |
+--------------+
1 row in set (0.64 sec)
SUM函数也可以用来进行合计计算值。
聚集不同值
它是一个在执行汇总的时候的参数,用来区分不同的值和所有值。
- 对所有的行执行计算,默认为全部
ALL
- 只包含不同的值,指定
DISTINCT
参数
这里返回了员工10001的薪水总额,但只考虑了不同值
SELECT SUM(DISTINCT salary) AS max_salary FROM salaries WHERE emp_no=10001;
输出:
+------------+
| max_salary |
+------------+
| 1281612 |
+------------+
1 row in set (0.00 sec)
组合聚集函数
SELECT可根据需要包含多个聚集函数
返回了员工10001的薪水调整次数,最高薪水、最低薪水以及历年来的平均薪水。
SELECT COUNT(*) AS count_sa, MAX(salary) AS max_sa, MIN(salary) AS min_sa, AVG(salary) AS avg_sa FROM salaries WHERE emp_no = 10001;
输出:
+----------+--------+--------+------------+
| count_sa | max_sa | min_sa | avg_sa |
+----------+--------+--------+------------+
| 17 | 88958 | 60117 | 75388.9412 |
+----------+--------+--------+------------+
1 row in set (0.00 sec)