SQL中count比较

     最近在处理查询关于运营的数据,主要是根据已有资料写SQL语句进行查询,虽然这并不是很难,但还是有很多收获,今天在写sql,用来统计每天访问的手机用户个数。

     之前我们一直都用过count来统计,用户的数量,但对于count的写法并没有做过非常深入的了解,当时想着只要能查出来就行,何必计较那么多呢?今天看到了别人写的sql语句,我的想法有了很大的改变。count来统计总数有很多种写法,咱们一一来了解。

    count(*):

是对行数的统计,将包括值为null的统计

    count(主键):

        不包括对null值的统计

    count(1):

         并不是统计第一列。count(1)和count(*)都包括对有null值的统计,而且统计出来的数据一样。而当我们采用分组Group By时,就会根据跟组的类,来统计分组的个数.

    下面是一个例子,用来说明问题

     

        SELECT
            sum(r.flowValue),
            count(1),
            r.phoneNumber
       FROM
            ChargedFlowRecords r
       WHERE
    <span style="white-space:pre">	</span>    r.chargeType = '直充'
       AND r.chargeState = '充值成功'
       AND DATE_FORMAT(r.requestDate, '%Y%m%d') >= '20160205'
       AND DATE_FORMAT(r.requestDate, '%Y%m%d') <= '20160531'
       GROUP BY
           r.phoneNumber
       ORDER BY
           sum(r.flowValue) DESC;
     得到的结果如下:

       

     总结:

         每一个小的知识点都有值得学习的地方,之前可能会忽略这些,但当我们回头再来看到的时候会发现有很多知识值得我们学习,关于这三种那种速度更快,还需要后期再做更多的试验才能得出结果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值