mysql count函数加条件_自学MySQL第四天

之前说过,MySQL有很多内置函数可以使用,今天就来更多的了解以下。

MAX(),查询最大值;MIN(),最小值;AVG(),平均值;SUM(),和;COUNT(),计数等等。

括号里可以输入数字或日期,数学表达式等等。

值得注意的是,这些函数只会处理非缺失值数据。这有时会产生影响,比如COUNT()函数若输入某一列,如果碰到缺失值,会造成查询到的数量变少,这时使用COUNT(*)比较好

COUNT()函数有时还会碰到重复数据进行重复计数,若只想计算有区分的数据数,需要加入DISTINCT关键字,如图:

e7c83ef2b18cfbc92225d7688ab6a9bd.png

当没有加DISTINCT关键字时,计数得17个,当加个关键字时,计数变为4个,因为只有4个clients进行了支票活动。

82bfdbe04374c5d343186c99f30fc418.png

当我们读出了总的数据后想要分组,需要用到GROUP BY指令,比如上述SUM()函数,如果我们想要按client_id进行加总,加一个GROUP BY即可,如图:

c51b02344c077b5d7e0f0c28a3e0c9a2.png

接下来,如果在分组后,还想要进行条件筛选,需要用到HAVING指令,如图:

ee0d6e0a3a2431e686da7760fa2c8457.png

用HAVING指令筛选出了total_num大于500的组。HAVING类似WHERE,但它只能用在分组之后,并且只能用SELECT选中的关键字,而WHERE写在分组之前,并且可以跟任何表中的列名称。

GROUP BY 指令后还可以加一个非常有用的WITH ROLLUP指令, 属于MySQL独有的指令,在其他SQL系统中不能使用。他可以呈现所有组的总值。如图所示:

951b6858fe0f17b561ce749b1388bee2.png

有趣的是,如果按两个条件分组,WITH ROLLUP会分层次的给出总值结果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值