您的位置:首页 > 数据库

SQL中count比较

2016-06-02 21:09 295 查看
     最近在处理查询关于运营的数据,主要是根据已有资料写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;     得到的结果如下:
       


     总结:

         每一个小的知识点都有值得学习的地方,之前可能会忽略这些,但当我们回头再来看到的时候会发现有很多知识值得我们学习,关于这三种那种速度更快,还需要后期再做更多的试验才能得出结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: