第 12 章 汇总数据
12.1 聚集函数
运行在行组上,计算和返回单个值的函数
函 数 说 明
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列值之和
12.1.1 AVG() 函数
输入: SELECT AVG(cust_zip) FROM customers;
输出:
+---------------+
| AVG(cust_zip) |
+---------------+
| 54686.4 |
+---------------+
注意: AVG() 函数忽略列值为 NULL 的行
12.1.2 COUNT() 函数
输入: SELECT COUNT(*) FROM customers;
输出:
+----------+
| COUNT(*) |
+----------+
| 5 |
+----------+
分析: COUNT(*) 对表中行的数目进行计数,不管表列中的是空值还是非空值
输入: SELECT COUNT(cust_email) FROM customers;
输出:
+-------------------+
| COUNT(cust_email) |
+-------------------+
| 3 |
+-------------------+
分析: 只对有值的进行计算
12.1.3 MAX() 函数
输入: SELECT MAX(cust_zip) FROM customers;
输出:
+---------------+
| MAX(cust_zip) |
+---------------+
| 88888 |
+---------------+
分析: MAX() 忽略列值为 NULL 的行
12.1.4 MIN() 函数
输入: SELECT MIN(cust_zip) FROM customers;
输出:
+---------------+
| MIN(cust_zip) |
+---------------+
| 42222 |
+---------------+
分析: MIN() 忽略列值为 NULL 的行
12.1.5 SUM() 函数
输入: SELECT SUM(cust_zip) FROM customers;
输出:
+---------------+
| SUM(cust_zip) |
+---------------+
| 273432 |
+---------------+
分析: SUM() 忽略列值为 NULL 的行
12.2 聚集不同值
输入: SELECT AVG(stat_value) FROM innodb_index_stats;
输出:
+-----------------+
| AVG(stat_value) |
+-----------------+
| 1.4571 |
+-----------------+
输入: SELECT AVG(DISTINCT stat_value) FROM innodb_index_stats;
输出:
+--------------------------+
| AVG(DISTINCT stat_value) |
+--------------------------+
| 3.2000 |
+--------------------------+
分析: DISTINCT 排除了重复值
12.3 组合聚集函数
输入: SELECT COUNT(*),AVG(stat_value),MIN(stat_value),MAX(stat_value) FROM innodb_index_stats;
输出:
+----------+-----------------+-----------------+-----------------+
| COUNT(*) | AVG(stat_value) | MIN(stat_value) | MAX(stat_value) |
+----------+-----------------+-----------------+-----------------+
| 35 | 1.4571 | 0 | 6 |
+----------+-----------------+-----------------+-----------------+