SQL必知必会(第四版)-9. 汇总数据

目录

9.1 聚集函数

9.1.1 AVG()函数

9.1.2 COUNT()函数

9.1.3 MAX()函数

对非数值数据使用MAX()

9.1.4 MIN()函数

9.1.5 SUM()函数

9.2 聚集不同值(DISTINCT)

9.3 组合聚集函数


9.1 聚集函数

SQL的聚集函数在各种主要SQL实现中得到了相当一致的支持。
聚集函数(aggregate function)对某些行运行的函数,计算并返回一个值。

9.1.1 AVG()函数

下面的例子使用AVG()返回Products表中所有产品的平均价格:

AVG()也可以用来确定特定列或行的平均值。下面的例子返回特定供应商所提供产品的平均价格:

AVG()函数只用于单个列,为了获得多个列的平均值,必须使用多个AVG()函数。

AVG()函数忽略列值为NULL的行。

9.1.2 COUNT()函数

COUNT()函数有两种使用方式:

  • 使用COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空

值。

  • 使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。

下面的例子返回Customers表中顾客的总数:

下面的例子只对具有电子邮件地址的客户计数:

9.1.3 MAX()函数

MAX()返回指定列中的最大值。MAX()要求指定列名,如下所示:

对非数值数据使用MAX()

虽然MAX()一般用来找出最大的数值或日期值,但许多(并非所有)DBMS允许将它用来返回任意列中的最大值,包括返回文本列中的最大值。在用于文本数据时,MAX()返回按该列排序后的最后一行。

  • MAX()函数忽略列值为NULL的行。

9.1.4 MIN()函数

除了功能与MAX()函数相反之外,其余都一样。

9.1.5 SUM()函数

计算某笔订单所订购物品的数量总数:

计算某笔订单的总订单金额:

SUM()函数忽略列值为NULL的行。

9.2 聚集不同值(DISTINCT)

以上5个聚集函数都默认对所有行执行计算;若要只包含不同的值,需要制定DISTINCT参数。

注意:Microsoft Access在聚集函数中不支持DISTINCT。

下面的例子使用AVG()函数返回特定供应商提供的产品的平均价格。它与上面的SELECT语句相同,但使用了DISTINCT参数,因此平均值只考虑各个不同的价格:

DISTINCT不能用于COUNT(*),但指定列名,可以用于COUNT()。

DISTINCT必须使用列名,不能用于计算或表达式。

9.3 组合聚集函数

SELECT语句可根据需要包含多个聚集函数,如:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值