前言
不知不觉已经十二天了,我们对MySQL已经有一个初步的认识了,已经掌握了一些比较基本的用法了。对牛客网上的习题也基本上能够解决,但是我们接下来的目标是怎么解决的更优。
聚集函数
我们经常需要汇总数据而不用把它们实际检索出来,为此MySQL提
供了专门的函数。
聚集函数( aggregate function) 运行在行组上,计算和返回单个值的函数
AVG函数
AVG()通过对表中行数计数并计算特定列值之和,求得该列的平均值。
AVG()可用来返回所有列的平均值,也可以用来返回特定列或行的平均值。
考虑下面的表(product)
上面是返回number列中的平均值。同样AVG函数可以与where子句合用,从而计算特定列值的平均值
上面的意思是说,只能计算一个列的平均值(列的数据类型必须是数值,否则返回的结果是错误的)
我们在表product总加入一条记录
在运行之前的代码
我们发现平均值是(27+34+4)/3=21.6667,忽略了第四行。
Count函数
COUNT()函数进行计数。 可利用COUNT()确定表中行的数目或符合特定条件的行的数目。
count在记数时,可以考虑NULL值,也可以不考虑,主要取决于你的用法。
统计表中行的数目(也就是记录的数目,不论记录中是否用空值,都会被记录)
下面是统计列的,若列值是空值则不会统计
MAX函数
MAX()返回指定列中的最大值。 MAX()要求指定列名。
max也只能统计一列的最大值。
MIN函数
MIN()的功能正好与MAX()功能相反,它返回指定列的最小值。与MAX()一样, MIN()要求指定列名。
MAX和MIN函数同样也可以结合WHERE子句使用,从而返回指定列值的最大最小值。
SUM函数
SUM()用来返回指定列值的和(总计)。
聚集不同值
看下面的例子
上面的平均值是(27+34+4)/3=21.6667,因为27出现了两次,DISTINCT关键字,告诉AVG函数只统计不同的值,所以27只统计了一次。
组合聚集函数
我们可以同时使用多个聚集函数
在使用多个聚集函数时,最后一个聚集函数不能后面不能加逗号
上面提到取别名,大家可以自行实现,要注意尽量保持表中的列名是唯一的
愉快的周末就快结束了,难过~