汇总数据
聚集函数(aggregate function)
对某些行运行的函数,计算并返回一个值。
函数 | 说明 |
---|---|
AVG() | 返回某列的平均值 |
COUNT() | 返回某列的行数 |
MAX() | 返回某列最大值 |
MIN() | 返回某列最小值 |
SUM() | 返回某列之和 |
- 利用标准的算术操作符,所有聚集函数都可以用来执行多个列上的计算
SELECT SUM(column_name_1 * column_name_2) AS column_sum
FROM table_name;
WHERE column_name = 'str'
AVG()函数
SELECT AVG(column_name) AS column_name_avg
FROM table_name
WHERE column_name = 'str';
- AVG()通过对表中行数技数并计算其列值之和,求得该列的平均值
- AVG()函数只能用来确定特定列的平均值,且列名称必须作为函数参数给出,若需活动多个列的平均值,需使用多个AVG()函数
- AVG()函数忽略列值为NULL的行
COUNT()函数
-- 对所有行进行计数
SELECT COUNT(*) AS column_num
FROM table_name;
-- 对特定列中有值的行进行计数
SELECT COUNT(column_name) AS column_num
FROM table_name;
- COUNT()函数进行计数
- 若指定列名,COUNT(column_name)函数忽略指定列值为NULL的行;若对所有行,COUNT(*)函数不忽略NULL值
MAX()函数
SELECT MAX(column_name) AS column_max
FROM table_name;
- MAX()函数返回指定列的最大值
- MAX()函数忽略列值为NULL的行
- 用于文本数据时,MAX()函数返回按该列排序后的最后一行
MIN()函数
SELECT MIN(column_name) AS column_min
FROM table_name;
- MIN()函数返回指定列的最小值
- MIN()函数忽略列值为NULL的行
- 用于文本数据时,MIN()函数返回按该列排序后的最前一行
SUM()函数
SELECT SUM(column_name) AS column_sum
FROM table_name;
WHERE column_name = 'str'
- SUM()函数返回指定列值的总和
- SUM()函数也可用于合计计算值
- SUM()函数忽略列值为NULL的行
聚集不同值
SELECT AVG(DISTINCT column_name) AS column_name_avg
FROM table_name
WHERE column_name = 'str';
- 5个聚集函数都可以对所有行执行计算,指定ALL 参数或不指定参数(ALL 为默认);也都可以通过指定DISTINCT 参数返回只包含不同的值
- DISTINCT 必须使用列名,不能用于计算或表达式
- DISTINCT 不能用于COUNT(*)
- 将DISTINCT 用于MAX()和MIN()实际上无价值
组合聚集函数
SELECT COUNT(*) AS column_num,
AVG(DISTINCT column_name) AS column_name_avg,
MAX(column_name) AS column_max,
MIN(column_name) AS column_min
FROM table_name
- SELECT 语句可根据需要包含多个聚集函数