本视频约120秒。碎片时间,关注收藏。
聚合函数
SQL 聚合函数计算一组值,并返回单个值。
聚合函数语法
<code>SELECT 列名1,聚合函数(列名2) FROM 表名 GROUP BY 列名1/<code>
因为聚合函数对一组值进行操作,所以它通常与 GROUP BY 子句一起使用。GROUP BY 子句将结果集划分为值分组,聚合函数为每个分组返回单个值。
常见的聚合函数:AVG()、COUNT()、MAX()、MIN()、SUM()。
除 COUNT() 函数之外,SQL 聚合函数忽略 NULL 值。
聚合函数介绍
聚合函数AVG详解
AVG 函数是一个聚合函数,用于计算集合的平均值。 以下说明了AVG 函数的语法:
AVG([ALL|DISTINCT] expression)
如果使用 ALL 关键字,AVG 函数将获取计算中的所有值。
默认情况下,无论是否指定,AVG 函数都使用 ALL。如果明确指定 DISTINCT 关键字,AVG函数将仅在计算中采用唯一值。
例如,有一组数据集 (1,2,3,3,4) 并将 AVG(ALL) 应用于此集合,AVG 函数将执行以下计算:(1+2+3+3+4)/5 = 2.6
但是,如果指定:AVG(DISTINCT) 将按如下方式处理:(1+2+3+4)/4 = 2.5
聚合函数SUM详解
SUM 函数是一个聚合函数,它返回所有或不同值的总和。需要注意的是,只能将 SUM 函数应用于数字列。以下说明了 SUM 函数的语法。
SUM([ALL|DISTINCT] expression)
ALL 运算符用于将聚合应用于所有值。 SUM 函数默认使用 ALL 运算符。
例如,如果有一组集合值:(1,2,3,3,NULL)。 使用 SUM 函数将返回 9,请注意,SUM函数忽略NULL 值。要计算唯一值的总和,可以使用 DISTINCT 运算符,例如,集合 (1,2,3,3,NULL) 的SUM(DISTINCT) 为 6。
聚合函数COUNT详解
COUNT 函数是一个聚合函数,它返回符合条件行数。以下是 COUNT 函数的语法:
COUNT ([ALL | DISTINCT] expression)
COUNT 函数的结果取决于传递给它的参数。默认情况下,COUNT 函数使用 ALL 关键字,无论是否指定它。 ALL 关键字表示考虑组中的所有项目,包括重复值。
例如,如果有一个数据集合 (1,2,3,3,4,4) 并应用 COUNT 函数,则结果为 6。
如果明确指定 DISTINCT 关键字,则仅考虑唯一的非 NULL 值。 如果将 COUNT 函数应用于数据集 (1,2,3,3,4,4),则 COUNT 函数返回 4。
另一种形式的 COUNT 函数接受星号 (*) 作为参数如下:COUNT(*)。
聚合函数MAX/MIN详解
MAX() 函数,用于在一组值中查找最大值。 MAX 函数的语法:MAX(expression)。
MAX 函数忽略 NULL 值。与SUM、COUNT和AVG函数不同,DISTINCT 选项不适用于 MAX 函数。
MIN() 函数同理。
聚合函数使用示例
假设表名为students,包含以下几个字段:
其中,各字段定义为:sid为学生ID、name为姓名、gender为性别,age为年龄,province为所在省份,city为所在城市,district为所在区 (NULL表示未上报)。
聚合函数使用:函数AVG()
<code>SELECT AVG(age) AS avg_age FROM students /<code>
该语句计算学生的平均年龄。
<code>SELECT name, age FROM students WHERE age > (SELECT AVG(age) FROM students )/<code>
该语句查询年龄高于学生平均年龄的基本信息。
聚合函数使用:函数MAX() / MIN()
<code>SELECT MAX(age) AS max_age FROM students /<code>
该语句计算学生的最大年龄。
<code>SELECT MIN(age) AS min_age FROM students /<code>
该语句计算学生的最小年龄。
聚合函数使用:函数COUNT() / SUM()
<code>SELECT COUNT(sid) AS s_cnt FROM students /<code>
统计学生人数。
<code>SELECT SUM(age) AS age_total FROM students /<code>
SUM(age) 对学生年龄字段求和。
碎片时间,关注收藏。
往期视频: