聚合函数

到现在为止介绍的函数都是一次只对单行进行操作,并且为每个输入行都返回一行输出结果。本节介绍聚合函数,聚合函数同时对一组行进行操作,对每组行返回一行输出结果。

注意:

由于聚合函数都是对成组的行进行操作,因此聚合函数也被称为分组函数(group function)。

表4-10列出了部分常用的聚合函数,这些函数全部返回一个NUMBER类型的值。

表4-10 聚 合 函 数

函 数
说 明

AVG(x)
返回 x 的平均值

COUNT(x)
返回一个包含x 的查询返回的行数

MAX(x)
返回 x 的最大值

MEDIAN(x)
返回 x 的中间值

MIN(x)
返回 x 的最小值

STDDEV(x)
返回 x 的标准差

SUM(x)
返回 x 的和

VARIANCE(x)
返回 x 的方差


在使用聚合函数时要注意以下几个问题:

● 聚合函数可用于任何有效的表达式。例如,可以对数字、字符串和日期使用COUNT、MAX和MIN函数。

● 聚合函数会忽略空值。这是因为空值说明该值未知,因此不适用于聚合函数的计算。

● DISTINCT关键字可以与聚合函数一起使用,这样可以在聚合函数的计算中排除重复项。

接下来的几节将会介绍更多有关表4-10中列出的聚合函数的知识。

第7章和第8章中将会介绍如何在SELECT语句的ROLLUP和RETURNING子句中使用这些函数。ROLLUP可以得到一组行的小计,这里的小计是用一个聚合函数计算得到的;RETURNING可以将聚合函数返回的值存储到一个变量中。

AVG函数

AVG(x)函数用于计算x的平均值。下面这个查询计算产品的平均价格;注意products表中的price列作为参数传递给了AVG函数:

SELECT AVG(price)FROM products;AVG(PRICE)----------19.7308333

聚合函数中可以使用任意有效的表达式。例如,下面这个查询向AVG函数传递的参数是表达式price + 2;意思是在每行的price列值上加上2,然后返回这些值的平均值:

SELECT AVG(price + 2)FROM products;AVG(PRICE)----------21.7308333

DISTINCT关键字可以用于从分组计算中排除重复的值。例如,下面这个查询在使用AVG函数计算平均值时,使用DISTICT关键字来排除price列中重复的值:

SELECT AVG(DISTINCT price)FROM products;AVG(DISTINCTPRICE)------------------20.2981818

注意这个例子中的平均值与本节第一个查询中所显示的平均值稍有不同。这是因为产品#12的价格与产品#7的价格相同,都是13.49。产品#12的price列被认为是重复的,AVG函数执行计算时,会将其排除在外。因此,本例所计算的平均值稍大一些。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值