汇总数据

简单来说就是对数据表的检索。观察它的最大值,最小值等

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)