欢迎来到天天文库
浏览记录
ID:22371668
大小:66.50 KB
页数:8页
时间:2018-10-28
《mysql高级特性之集合函数--》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、MySQL高级特性之集合函数>> 到现在为止,你只学习了如何根据特定的条件从表中取出一条或多条记录。但是,假如你想对一个表中的记录进行数据统计。例如,如果你想统计存储在表中的一次民意测验的投票结果。或者你想知道一个访问者在你的站点上平均花费了多少时间。要对表中的任何类型的数据进行统计,都需要使用集合函数。你可以统计记录数目,平均值,最小值,最大值,或者求和。当你使用一个集合函数时,它只返回一个数,该数值代表这几个统计值之一。 这些函数的最大特点就是经常和GROUPBY语句配合使用,需要注意的是集合函数不能和非分组的列混合使用。 行列计数 计算查询语句返回的记录行数
2、 直接计算函数COUNT(*)的值,例如,计算pet表中猫的只数: mysql>SELECTcount(*)FROMpetpet; +----------------+
3、count(species)
4、 +----------------+
5、9
6、 +----------------+ 如果相同的种类出现了不止一次,该种类将会被计算多次。如果你想知道种类为某个特定值的宠物有多少个,你可以使用petpetpet; +-------------------------+
7、COUNT(DISTINCTspecies)
8、 +-------------
9、------------+
10、5
11、 +-------------------------+ 如果种类'cat'出现了不止一次,它将只被计算一次。关键字DISTINCT决定了只有互不相同的值才被计算。 通常,当你使用COUNT()时,字段中的空值将被忽略。 另外,COUNT()函数通常和GROUPBY子句配合使用,例如可以这样返回每种宠物的数目: mysql>SELECTspecies,count(*)FROMpetGROUPBYspecies; +---------+----------+
12、species
13、count(*)
14、 +-
15、--------+----------+
16、bird
17、2
18、
19、cat
20、2
21、
22、dog
23、3
24、
25、hamster
26、1
27、
28、snake
29、1
30、 +---------+----------+ 计算字段的平均值 需要计算这些值的平均值。使用函数AVG(),你可以返回一个字段中所有值的平均值。 假如你对你的站点进行一次较为复杂的民意调查。访问者可以在1到10之间投票,表示他们喜欢你站点的程度。你把投票结果保存在名为vote的INT型字段中。要计算你的用户投票的平均值,你需要使用函数AVG(): SELECTAVG(vote)FROMopinion 这个SELECT
31、语句的返回值代表用户对你站点的平均喜欢程度。函数AVG()只能对数值型字段使用。这个函数在计算平均值时也忽略空值。 再给出一个实际例子,例如我们要计算pet表中每种动物年龄的平均值,那么使用AVG()函数和GROUPBY子句: mysql>SELECTspecies,AVG(CURDATE()-birth)FROMpetGROUPBYspecies; 返回的结果为: +---------+----------------------+
32、species
33、AVG(CURDATE()-birth)
34、 +---------+------------------
35、----+
36、bird
37、34160
38、
39、cat
40、74959.5
41、
42、dog
43、112829.66666667
44、
45、hamster
46、19890
47、
48、snake
49、49791
50、 +---------+----------------------+ 计算字段值的和 假设你的站点被用来出售某种商品,已经运行了两个月,是该计算赚了多少钱的时候了。假设有一个名为orders的表用来记录所有访问者的定购信息。要计算所有定购量的总和,你可以使用函数SUM(): SELECTSUM(pur12下一页>>>>这篇文章来自..,。chase_amount)FROMorders
51、函数SUM()的返回值代表字段purchase_amount中所有值的总和。字段purchase_amount的数据类型也许是DECIMAL类型,但你也可以对其它数值型字段使用函数SUM()。 用一个不太恰当的例子说明,我们计算pet表中同种宠物的年龄的总和: mysql>SELECTspecies,SUM(CURDATE()-birth)FROMpetGROUPBYspecies; 你可以查看结果,与前一个例子对照: +---------+----------------------+
52、species
53、SU
此文档下载收益归作者所有