×
SQL Server教程SQL Server是什么?安装SQL Server连接到SQL ServerSQL Server示例数据库加载示例数据库SQL Server数据类型SQL Server数据定义SQL Server修改数据SQL Server数据查询SQL Server连接表SQL Server数据分组SQL Server子查询语句SQL Server集合操作符SQL Server约束SQL Server视图SQL Server存储过程SQL Server用户定义函数SQL Server触发器SQL Server聚合函数SQL Server日期函数SQL Server字符串函数SQL Server Window函数

SQL Server聚合函数


在本教程中,将了解和学习SQL Server聚合函数以及如何使用它们来计算聚合。

聚合函数执行一个或多个值的计算并返回单个值。 聚合函数通常与SELECT语句的GROUP BY子句和HAVING子句一起使用。

下表显示了SQL Server中的聚合函数:

编号 聚合函数 描述
1 AVG()函数 AVG()函数用于计算集合中非NULL值的平均值。
2 CHECKSUM_AGG()函数 CHECKSUM_AGG()函数根据一组行计算校验和值。
3 COUNT()函数 COUNT()函数返回集合中的行数,包括具有NULL值的行。
4 COUNT_BIG()函数 COUNT_BIG()函数返回组中的行数(具有BIGINT数据类型),包括具有NULL值的行。
5 MAX()函数 MAX()函数返回集合中非NULL值中的最大值。
6 MIN()函数 MIN()函数返回集合中非NULL值中的最小值。
7 STDEV()函数 STDEV()函数返回所提供表达式的所有值的统计标准偏差,但基于数据总体的样本。
8 STDEVP()函数 STDEVP()函数还返回所提供表达式的所有值的标准偏差,但基于整个数据填充。
9 SUM()函数 SUM()函数返回集合中所有非NULL值的总和。
10 VAR()函数 VAR()函数根据指定总体的样本,返回表达式中值的统计方差。
11 VARP()函数 VARP()函数返回表达式中值的统计方差,但是基于整个数据总体。

SQL Server聚合函数语法

以下是聚合函数的语法:

aggregate_function_name(DISTINCT | ALL expression)

在这个语法中;

  • 首先,指定要使用的聚合函数的名称,例如:AVGSUMMAX
  • 其次,如果只想在计算中考虑不同的值,则使用DISTINCT;如果在计算中考虑所有值,则使用ALL。 默认情况下,如果未指定任何修饰符,则使用ALL
  • 第三,expression可以是表的列,也可以是由具有算术运算符的多个列组成的表达式。

SQL Server聚合函数示例

下面将使用示例数据库中的products表进行演示。

products表结构

1. AVG()函数示例
以下语句使用AVG()函数返回products表中所有产品的平均价格:

SELECT
    AVG(list_price) avg_product_price
FROM
    production.products;

执行上面查询语句,得到以下结果:

查询平均价格

上图中平均价格有6位小数。一般需要将结果舍入到两位小数的数字。 为此,可以使用ROUNDCAST函数,如以下查询中所示:

SELECT
    CAST(ROUND(AVG(list_price),2) AS DEC(10,2))
    avg_product_price
FROM
    production.products;

执行上面查询语句,得到以下结果:
查询平均价格

首先,ROUND函数返回舍入的平均价格。 然后CAST函数将结果转换为带有两个小数位的十进制数。

2. COUNT()函数示例
以下语句使用COUNT()函数返回价格大于500的产品数量:

SELECT
    COUNT(*) product_count
FROM
    production.products
WHERE
    list_price > 500;

执行上面查询语句,得到以下结果:
产品总数量

在这个例子中:

  • 首先,WHERE子句获取价格大于500的产品。
  • 其次,COUNT函数返回价格大于500的产品数量。

3. MAX()函数示例

以下语句使用MAX()函数返回所有产品的最高定价:

SELECT
    MAX(list_price) max_list_price
FROM
    production.products;

执行上面查询语句,得到以下结果:
产品最高价格

4. MIN()函数示例

同样,以下语句使用MIN()函数返回所有产品的最低定价:

SELECT
    MIN(list_price) min_list_price
FROM
    production.products;

执行上面查询语句,得到以下结果:

产品最低价格

5. SUM()函数示例

为了方便演示SUM()函数的使用,下面将使用示例数据库中的stocks表。

socks表结构

以下语句使用SUM()函数计算所有仓库中产品ID的总库存:

SELECT 
    product_id, 
    SUM(quantity) stock_count
FROM 
    production.stocks
GROUP BY
    product_id
ORDER BY 
    stock_count DESC;

执行上面查询语句,得到以下结果:

计算总库存

以下是该语句的工作原理:

  • 首先,GROUP BY子句按产品ID将行汇总为组。
  • 其次,SUM()函数计算每个组的数量总和。

6. STDEV()函数示例
以下语句使用STDEV()函数计算所有价格的统计标准差:

SELECT
    CAST(ROUND(STDEV(list_price),2) as DEC(10,2)) stdev_list_price
FROM
    production.products;

执行上面查询语句,得到以下结果:
STEEV计算标准方差

在本教程中,了解并学习了SQL Server聚合函数以及如何使用它们来计算聚合。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)