SELECT sum(1) FROM table;和SELECT count(1) FROM table;

SELECTsum(1)FROMtable;----------------累加'1'列的总和;SELECTcount(1)FROMtable;-------------... SELECT sum(1) FROM table;----------------累加'1'列的总和;
SELECT count(1) FROM table;--------------统计'1'列的总条数;
这里总和与总条数有何不同?谢谢!
应该是这样:
如果:
SELECT SUM(ID) FROM test_t;
SELECT COUNT(ID) FROM test_t;
则第一个返回的是ID列所有值的总和,第二个是ID列的行数。

我的意思是如果使用sum(1)就会返回第一列所有不为NULL的行数,如果使用sum(具体的列名),则会返回该列所有行所存数值的总和。
如果:
SELECT SUM(1) FROM test_t;
SELECT COUNT(1) FROM test_t;
则第一个和第二个都是返回第一列的行数。

准确来讲,只有count会统计NULL列,其它的聚合函数都会忽略NULL列,对?
展开
 我来答
alex_hy
推荐于2018-03-19 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2601
采纳率:100%
帮助的人:962万
展开全部
两者在对于null的记录处理不一样

count是统计所有行计数

sum是对不为null的行求和,

所以上两式结果在有null行的时候是不一样的(没有null的记录时结果一样)

msdn对聚合函数描述第1句就说了这个问题,如下:
聚合函数对一组值执行计算,并返回单个值。除了 COUNT 以外,聚合函数都会忽略空值。
http://msdn.microsoft.com/zh-cn/library/ms173454(v=SQL.90).aspx

-----------------------
lz还没弄懂么?

有这么一张表tmp
a
1
2
3
4
5
6
null
8

count(1)值是8
sum(1)值是7

-----------------------
我以为lz已经明白sum用法才会问sum(1)这种独特用法呢
看来还得全部解释一遍所有的聚合函数如下
还是上面的例子
sum(a)=29
sum(1)=7
count(a)=count(1)=count(*)=8
max(a)=8
min(a)=1
avg(a)=sum(a)/sum(1)=29/7=4.14 (如果a是int型的,那结果自动取整为4),注意avg也是跳过null行的,所以分母只能算sum(1)

看lz还有什么疑问

----------------------------


lz的分不好挣啊

看上面msdn的连接,里面有详细的例子
msdn写的不错,遇到有问题的,到里面看看还是不错的

msdn对聚合函数描述第1句就说了这个问题,如下:
聚合函数对一组值执行计算,并返回单个值。除了 COUNT 以外,聚合函数都会忽略空值。
http://msdn.microsoft.com/zh-cn/library/ms173454(v=SQL.90).aspx
不言处世古今同9773
2010-09-18 · TA获得超过116个赞
知道答主
回答量:203
采纳率:0%
帮助的人:143万
展开全部
sum是那列的值相加,count是条数相加。例如有5条记录的值分别为:1、2、3、4、5 那么sum的结果是:15(数值的和) 而count是:5(5条数据)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
念悦沅Xy
2010-09-17 · 超过35用户采纳过TA的回答
知道答主
回答量:253
采纳率:0%
帮助的人:120万
展开全部
sum是将该列的数据合部加起来,count是统计总共有多少条数据并不把那些列的数据相加
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
earyuoyt134
2010-09-18 · TA获得超过1091个赞
知道大有可为答主
回答量:1432
采纳率:0%
帮助的人:1266万
展开全部
第一个相加的总和
第二则是统计个表的总记录

SELECT sum(1) FROM table 表中1和数的总和
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式