MySQL聚合函数(COUNT、AVG、MIN、MAX、SUM)

一、count函数

  • 确定表中行的数目或符合特点条件的行的数目
  • 语法格式:
    • count(*);  //没有order by时,返回表中总的行数。有order by时,返回指定字段的行数。空值(NULL)的行也显示
    • count(字段名);   //返回指定字段的总行数,空值(NULL)的行会被忽略

演示案例

  • 返回customers表中客户的总数

  • 只对具有电子邮件地址的客户计数

演示案例

  • 查询child表的child_id列:
select child_id from child;

  • 去除重复行:
select distinct child_id from child;

  • 查看不重复的行有多少行:
select count(distinct child_id) from child;

二、sum函数

  • 功能:返回指定字段的值总和
  • sum会忽略值为NULL的行

演示案例

  • 合计每项物品的总价,得出总的订单金额

三、avg函数

  • 功能:通过返回的行数和每一行数据的和,求出指定列数据的平均值
  • 注意事项:
    • avg函数使用时,其参数为要计算的列名称。如果要得到多个列的多个平均值,则需要在每一列上使用avg函数
    • avg()函数忽略值为NULL的行

演示案例

  • 计算products表中所有产品的平均价格

  • 仅计算vend_id为1003的产品的平均价格

四、max函数

  • 功能:返回指定列中的最大值
  • 注意事项:
    • max不仅适用于查找数值类型,也可用于字符类型
    • max()函数会忽略值为NULL的行

演示案例

  • 返回价格最大的商家

五、min函数

  • 功能:返回指定列中的最小值
  • 注意事项:
    • min()不仅适用于查找数值类型,也可用于字符类型
    • min()函数会忽略值为NULL的行

演示案例

  • 返回价格最小的商家

六、聚集不同值(distinct关键字)

  • 所有的聚合函数都是对所有的行进行操作,默认为ALL参数(ALL参数为默认行为)
  • DISTINCT可以在查询中只包含不同的值
  • 注意事项:
    • 如果指定列名,则distinct只能用于count()。distinct不能用于count(*),因此不允许使用count(distinct),否则会产生错误。
    • 类似的,distinct必须使用列名,不能用于计算或表达式
    • 将distinct用于min和max:虽然distinct从技术上可用于这两个函数,但这样做实际上没有价值,一个列中最小值和最大值不管是否包含不同值都是唯一且相同的

演示案例

  • 下面返回特定供应商提供的产品的平均价格,但是使用了distinct参数,与上面avg函数中的演示案例价格提高了(因为有多个物品具有相同的较低价格)

七、聚合函数的组合使用

  • 我们可以将聚合函数组合进行使用

演示案例

  • 下面的演示案例返回products表中物品的数目,产品价格的最高、最低以及平均值

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董哥的黑板报

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值