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; 得到的结果如下:
总结:
每一个小的知识点都有值得学习的地方,之前可能会忽略这些,但当我们回头再来看到的时候会发现有很多知识值得我们学习,关于这三种那种速度更快,还需要后期再做更多的试验才能得出结果。
之前我们一直都用过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; 得到的结果如下:
总结:
每一个小的知识点都有值得学习的地方,之前可能会忽略这些,但当我们回头再来看到的时候会发现有很多知识值得我们学习,关于这三种那种速度更快,还需要后期再做更多的试验才能得出结果。
相关文章推荐
- MongoDB快速入门学习笔记8 MongoDB的java驱动操作
- redis set、序列化存入缓存
- [数据库]索引的建立
- Mysql性能优化一
- SQL必知必会(第3版)学习笔记【1-5章】
- mysql ERROR 1045 (28000): Access denied for user解决方法
- 解决重新安装sqlserver2008报错Reporting Services目录数据库文件存在的问题
- 解决重新安装sqlserver2008报错Reporting Services目录数据库文件存在的问题
- 拆书——SQL Server从入门到精通 (1)
- 准确计算oracle表分区记录数
- 微软发布正式版SQL Server 2016
- 完整java开发中JDBC连接数据库代码和步骤
- 数据库中的索引
- MySQL5.7修改数据库目录!
- MySQL5.7修改数据库目录!
- hive高阶1--sql和hive语句执行顺序、explain查看执行计划、group by生成MR
- hive高阶1--sql和hive语句执行顺序、explain查看执行计划、group by生成MR
- MySQL远程登录设置
- oracle 导出导入不含数据的空库
- oracle 导出导入不含数据的空库