sql中奇怪的sum(1),sum(2),count(1),count(6),count(*):统计总数
2015-04-03 18:39
316 查看
sql的统计函数
sql统计函数有 count 统计条数,配合group用 sum 累加指定字段数值 但注意sum(1)就特殊
sum(1)等同于count(*)
sum(1)统计个数,功能和count(*)一样,但效率上count(*)高。所以尽量少用。
举个小例子
SELECT ad_network_id,,sum(1),count(*),sum(2),count(5) from mapping_table_analytics GROUP BY ad_network_id
运行结果为:
3 123 123 123 246 5 38 38 38 76
可以看出sum(1),count(1),count(2),count(*)都是用来统计个数,结果一样。
而且,他们都包含NULL值的记录
比较特殊的是sum(2),会给统计结果总数乘以2.
(注意count(N)不会,和count(1)效果一样)
比如 SELECT sum(2) from mapping_table_analytics,结果就是实际条数的2倍
同理,sum(N)就是N倍
我理解sum(N)的执行过程就是,遍历整个表,有一条记录,就执行一次加N操作,返回累加的总体结果。所以是N倍。
统计count想过滤NULL的记录
必须count(字段名):只有指定字段,才能过滤掉该字段值为NULL的记录
SELECT ad_network_id,sum(1),count(*),sum(2),count(5),count(id),count(type) from mapping_table_analytics GROUP BY ad_network_id
相关文章推荐
- sql中奇怪的sum(1),sum(2),count(1),count(6),count(*):统计总数
- SQL编程实例:Access数据库,两张表的统计,count、sum聚合函数的使用,iif的使用,group by的使用
- 命名sql使用sum( $field$ )动态统计总数,执行报错
- 学习 SQL 语句 - Select(7): 分组统计之 Avg()、Sum()、Max()、Min()、Count()
- sql sum同时统计一个字段两种情况的总数
- 学习 SQL 语句 - Select(7): 分组统计之 Avg()、Sum()、Max()、Min()、Count()
- LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg
- SQL中sum(),avg()等统计结果为null的解决方法
- LINQ体验(5)——LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg
- LINQ体验(5)——LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg
- SQL中sum(),avg()等统计结果为null的解决方法
- sql中sum()和count()的区别
- LINQ体验(5)——LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg
- SQL---DML---聚集函数AVG(),COUNT(),SUM(),MAX(),MIN()的使用
- LINQ体验(四)——LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg
- LINQ体验(5)--LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg
- LINQ体验(5)--LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg
- SQL中sum(),avg()等统计结果为null的解决方法
- SQL中以count及sum为条件的查询
- SQL中以count及sum为条件的查询---转(http://kiddymeet.51cto.com/blog/20194/19376)