【MySQL必知必会系列】汇总数据·聚集函数

聚集函数       运行在行组上,计算和返回单个值的函数。

 常见的5个聚集函数

这些函数是高效设计的,它们返回结果一般比我们自己的客户机应用程序计算要快得多。

 AVG()函数     返回某列的平均值

通过对表中行数计数并计算特定列值之和,求得该列的平均值。

可以用来返回所有列的平均值或者返回特定列或行的平均值。

SELECT AVG(price) AS avg_price FROMproducts WHEREid = 1003;

[注]:只用于单个列,为了获得多个列的平均值必须使用多个AVG()函数。会忽略列值为NULL的行。

 COUNT()函数      返回某列的行数

COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值。

COUNT(column) 对特定列中具有值的行进行计数,忽略NULL值

 MAX()函数    返回某列的最大值

同样忽略列值为NULL的行

虽然MAX()函数一般用来找出最大的数值或日期,但MySQL允许将它用来返回任意列中的最大值,包括返回文本列中的最大值。

[注]:在用于文本数据时,如果数据按相应的列排序,则MAX()返回最后一行。

 MIN()函数     返回某列的最小值

与MAX()函数类似

 SUM()函数    返回某列值之和

也可以用来合计计算

SELECT SUM(price*quantity) AS total FROMorders WHERE order_num = 2005;

如上例所示,利用标准的算术操作符,所有聚集函数都可以用来执行多个列上的计算。

 MySQL 5以及以上版本支持 聚集函数的DISTINCT使用

只包含不同的值,则需要指定DISTINCT参数

SELECT AVG(DISTINCT price) AS avg_priceFROM products WHERE id = 1003;

因此平均值只考虑不同的价格;

[注]:DISTINCT不能用于COUNT(*),因为不允许使用 COUNT(DISTINCT)。

DISTINCT必须使用列名。

 组合聚集函数       SELECT语句可以根据需要包含多个聚集函数

SELECT COUNT(*) AS num,

         MIN(price) AS price_min,

         AVG(price) AS price_avg

FROM products;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值