GBase数据库--聚集函数

聚集函数

聚集函数对一组查询返回一个值。聚集函数取用于依赖SELECT语句的WHERE子句返回的一组行的值。没有WHERE子句时,聚集函数依赖于FROM子句组成的所有行的值。
不能将聚集函数用于下列数据类型的表达式中:
1,TEXT
2,BYTE
3,CLOB
4,BLOB
5,集合数据类型(LIST,MULTISET,SET)
6,ROW
7,不透明数据类型

AVG函数

下列查询计算stock表中所有行的平均值unti_price。

select AVG(unti_price) from stock;

查询结果

(avg)
     $197.14

下列查询计算stock表中manu_code为SHM的那些行的平均值unti_price。

select AVG(unti_price) from stock where manu_code = 'SHM';

查询结果

(avg)
     $204.93

COUNT函数

下列查询stock表中的总行数进行计数和显示。

select count(*) from stock;

查询结果

(count(*))
     73

下列查询包含where子句来对stock表中的特定行进行计数。

select count(*) from stock where manu_code = 'SHM';

查询结果

(count(*))
     17

通过包含DISTINCT关键字和列明,可以计算stock表中不同制造商代码的数量。

select count(distinct manu_code) from stock;

查询结果

(count)
     9

MAX和MIN函数

可以在同一select语句中组合聚集函数,例如,可以同时在选择列表中包括MAX和MIN函数,如下所示:

select max(ship_charge),min(ship_charge) from orders;

该查询查找并显示orders表中的最大和最小ship_charge。
查询结果

(max)  (min)
     $25.20   $5.00

RANGE函数

RANGE函数计算所选行的最大值与最小值之差。
只能将RANGE函数用于数字列。下列查找stock表中商品的价格范围。

select range(unti_price) from stock;

查询结果

(range)
     955.50

对于其它聚集函数,当查询包括GROUP BY 子句时,RANGE函数适用于组的行,如下所示:

select range(unti_price) from stock group by manu_code;

查询结果

(range)
     820.20
     595.50
     720.00
     225.00
     632.50
     0.00
     460.00
     645.90
     425.00

STDEV函数

STDEV函数计算所选行的标准偏差。它是VARIANCE函数的平方根。
可将STDEV函数应用于数字列。下列查找入口的标准偏差:

select stdev(age) from u_pop where age>21;

对于其他聚集,当查询包括group by子句时,STDEV函数适用于组的行,如下所示:

select stdev(age) from u_pop group by state where stdev(age)>21;

除非指定列中的每个值都是空值,否则会忽略空值。如果每个列都是空值,那么STDEV函数对该列返回空值。

SUM函数

下列查询计算1988年7月13日交付的所有订单的总ship_weight。

select sum(ship_weight) from orders where ship_date = '07/13/1998';

查询结果

(sum)
     130.5

VARIANCE函数

VARIANCE函数返回值样本的方差作为所有选择行的方差的无偏估计。它计算以下值:

(sum(xi**2)-(sum(xi)**2)/N)/(N-1)

在此示例中,xi是列中的每个值,N是列中值的总数。只能将VARIANCE函数应用于数字列。一下查询查找入口的便准偏差:

select VARIANCE(age) from u_pop where age>21;

对于其他聚集,当查询包括group by 子句时,VARIANCE函数适用于所有的行。如下所示:

select VARIANCE(age) from u_pop group by birth where VARIANCE(age)>21;

除非指定列中的每个值都是空值,否则会忽略空值。如果每个列都是空值,那么VARIANCE函数对该列返回空值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值