SQL之聚集函数

简介

聚集函数,是对集合执行计算,并返回单个值的函数。除了 COUNT(*) 外,聚集函数都会忽略 null 值。所有的聚集函数均为确定性函数。换言之,每次使用同一组特定的输入值来调用聚集函数时,它们所返回的值都是相同的1。通常情况下,聚合函数往往与 GROUP BY 子句或 OVER 子句结合使用。与 GROUP BY 结合用来计算集合中不同分组的聚集。与 OVER 子句结合用来计算特定范围内的值的聚集。

应用场景

聚集函数适用于,对集合数据进行汇总,而不需要将它们实际数据检索出来2。例如:统计集合总数、最大值、最小值等。

考虑以下情况:统计集合总数。

方案一:使用聚集函数COUNT,如SELECT COUNT(*) FROM TABLE_NAME;

方案二:先从表中获取所有集合数据,再实现统计操作。

首先,返回实际表数据是对时间和计算机资源的一种浪费。其次,如果是网络程序,还将涉及到网络IO,会大大影响程序运行效率。

聚集函数

聚集函数作用
APPROX_COUNT_DISTINCT返回集合中唯一非空值的近似总个数。此函数保证最多 2% 的错误率,概率在 97% 内。
AVG返回集合中各值的平均值,忽略 null 值。
CHECKSUM_AGG返回集合中各值的校验和,忽略 null 值。
COUNT返回集合中找到的总个数,返回值类型为 int。
COUNT_BIG返回集合中找到的总个数,返回值类型为 bigint。
GROUPING是否聚合 GROUP BY 列表中的指定列表表达式。如果 GROUPING 返回 1 则表示聚合;返回 0 则表示不聚合。
GROUPING_ID返回计算分组级别。
MAX返回集合中最大值。
MIN返回集合中最小值。
STDEV返回集合中的标准差。
STDEVP返回集合中的总体标准差。
STRING_AGG通过分隔符将集合里的值串联起来,不能在字符串末添加分隔符。
SUM返回集合中所有值的和,只能用于数字列,忽略 null 值。
VAR返回集合中所有值的方差。
VARP返回集合中所有制的总体统计方差。

快速入门

SQL 中常见的聚集函数为 AVG、COUNT、MAX、MIN、SUM。以下为这五类聚集函数最基本的用法:

-- 计算集合中的平均值
SELECT AVG(COLUMN) FROM TABLE_NAME;

-- 统计集合的总数
SELECT COUNT(*) FROM TABLE_NAME;

-- 计算集合中的最大值
SELECT MAX(COLUMN) FROM TABLE_NAME;

-- 计算集合中的最小值
SELECT MIN(COLUMN) FROM TABLE_NAME;

-- 统计集合中所有值之和
SELECT SUM(COLUMN) FROM TABLE_NAME;

参考资料


  1. 聚集函数 (Transact-SQL) - SQL Server | Microsoft Learn ↩︎

  2. Mysql| Mysql函数,聚集函数的介绍与使用(Lower,Date,Mod,AVG,…)-腾讯云开发者社区-腾讯云 (tencent.com) ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值