sql基本知识大全(每天学点SQL006)
本视频约120秒。碎片时间,关注收藏。
聚合函数SQL 聚合函数计算一组值,并返回单个值。
聚合函数语法
SELECT 列名1,聚合函数(列名2)
FROM 表名
GROUP BY 列名1
因为聚合函数对一组值进行操作,所以它通常与 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(*)。
拍摄于20200408
聚合函数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()
SELECT AVG(age) AS avg_age FROM students
该语句计算学生的平均年龄。
SELECT name, age FROM students
WHERE age > (SELECT AVG(age) FROM students )
该语句查询年龄高于学生平均年龄的基本信息。
聚合函数使用:函数MAX() / MIN()
SELECT MAX(age) AS max_age FROM students
该语句计算学生的最大年龄。
SELECT MIN(age) AS min_age FROM students
该语句计算学生的最小年龄。
聚合函数使用:函数COUNT() / SUM()
SELECT COUNT(sid) AS s_cnt FROM students
统计学生人数。
SELECT SUM(age) AS age_total FROM students
SUM(age) 对学生年龄字段求和。
碎片时间,关注收藏。
拍摄于20200408
往期视频:
每天学点SQL(001) SELECT语句
每天学点SQL(002) DISTINCT语句
每天学点SQL(003) WHERE子句
每天学点SQL(004) AND 或 OR
每天学点SQL(005) ORDER BY语句
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com