SQL第9课——汇总数据

(9.21-----9.25在打研究生数模比赛,所以断更了几天,sorry)

SQL的聚集函数,如何利用它们汇总表的数据

9.1 聚集函数

汇总数据但是不需要实际检索出来,SQL查询可用函数检索数据,以便分析和报表生成。

聚集函数(aggregate function):对某些行运行的函数,计算并返回一个值。

SQL聚集函数(各种主要SQl实现中相当一致)
函数说明
avg()返回某列的平均值
count()返回某列的行数
max()列的最大值
min()列的最小值
sum()某列之和

9.1.1 avg()函数

对行数计数,计算列值之和,得到列的平均值,返回所有列的平均值。

也可以返回特定列或行的平均值。

返回包含Products表中所有产品的平均价格。

下例返回特定供应商所提供产品的平均价格:

!!!avg()函数只能计算一个列的平均值,计算多个列,就需要多个avg()函数;列名必须作为函数参数给出。avg()函数忽略列值为null的行。

9.1.2 count()函数

确定表中行的数目或符合特定条件的行的数目。

1. count(*):计算所有行数,不管是不是空值null;

2. count(column): 对特定列中具有值得行进行计数,忽略null值。

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

9.1.3 max()函数

返回指定列中的最大值,要求指定列名。

在用于文本数据时,max()返回按该列排序后的最后一行。max()忽略列值为null的行。

9.1.4 min()函数

在用于文本数据时,min()返回该列排序后最前面一行。

9.1.5 sum()函数

返回指定列值的和(总计):检索所订购物品的总数(所有quantity值之和)

sum(quantity)返回订单中所有物品数量之和,where子句保证只统计某个物品订单中的物品。

sum()也可以用来合计计算值,合计每项物品的item_price*quantity,得出总得订单金额:

sum()函数忽略列值为null的行。

9.2 聚集不同值

以上5个聚集函数都可以如下使用:

1. 对所有行执行计算,指定all参数或不指定参数(因为all是默认行为)

2. 只包含不同的值,指定distinct参数。

使用了distinct参数,平均值只考虑各个不同的价格

distinct只能用于count(),不能用于count(*)。distinct必须使用列名,不能用于计算或表达式;

支持对查询结果的子集进行计算的top和top percent

9.3 组合聚集函数

指定列名包含结果,不能使用表中实际的列名。因为许多SQL实现不支持,可能会产生模糊的错误消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值