SELECT sum(1) FROM table;和SELECT count(1) FROM table;SELECT sum(1) FROM table;----------------累加'1'列的总和;SELECT count(1) FROM table;--------------统计'1'列的总条数;这里总和与总条数有何不同?应该是这样:如果:SE

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 02:30:33

SELECT sum(1) FROM table;和SELECT count(1) FROM table;SELECT sum(1) FROM table;----------------累加'1'列的总和;SELECT count(1) FROM table;--------------统计'1'列的总条数;这里总和与总条数有何不同?应该是这样:如果:SE
SELECT sum(1) FROM table;和SELECT count(1) FROM table;
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列,

SELECT sum(1) FROM table;和SELECT count(1) FROM table;SELECT sum(1) FROM table;----------------累加'1'列的总和;SELECT count(1) FROM table;--------------统计'1'列的总条数;这里总和与总条数有何不同?应该是这样:如果:SE
两者在对于null的记录处理不一样
count是统计所有行计数
sum是对不为null的行求和,
所以上两式结果在有null行的时候是不一样的(没有null的记录时结果一样)
msdn对聚合函数描述第1句就说了这个问题,如下:
聚合函数对一组值执行计算,并返回单个值.除了 COUNT 以外,聚合函数都会忽略空值.
-----------------------
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 以外,聚合函数都会忽略空值.

oracle报错00936 缺失表达式 错误 select t.comcode 组代码,(select y.comcname from cc_company y where y.comcode=t.comcode) 组名称,sum(decode(aa.a3,0,aa.a1,0)) as 零分总量,sum(decode(aa.a3,1,aa.a1,0)) as 一分总量,sum(decode(aa.a3,2 SQL2005 报错 在关键字'group' 附近有语法错误select a,b,sum(x) from (select a,b,'1' as x from aaaunion allselect a,b,'-1' as x from bbb)group by a,b改成下面这样还是同样报错:select a,b,sum(x) from (select a,b,'1' as x from aaa SELECT sum(1) FROM table;和SELECT count(1) FROM table;SELECT sum(1) FROM table;----------------累加'1'列的总和;SELECT count(1) FROM table;--------------统计'1'列的总条数;这里总和与总条数有何不同?应该是这样:如果:SE select count(1) from emp sql函数,select count(A.abc) as sum from A left join B on A.id=B.id where A.abc='1' group by A.abc结果是 sum 234怎么求count(A.abc) as sum 的总数. 我数据库中有status 和value如果status=0 value!=0我sum的时候想统计value如果status为0的value也为0急比如 select t.status,t.value from table_name;status value------------------0 1231 123我想select sum(value) from table_name的 1' union select * from [ADM] union select * Caused by:java.lang.IllegalArgumentException:No positional parameters in query:select sum(case when t.expenseDeatailLine.financeauditmoney>0 then t.expenseDeatailLine.financeauditmoney eles t.expenseDeatailLine.reimbursementamount end ) from TravelEx 有关group by报错,not a GOUP BY expression这条就会报错select acmratt.brcode,sum(acmratt.tdccramt)from acmratt group by 1但是,改成select acmratt.brcode,sum(acmratt.tdccramt)from acmratt group by acmratt.brcode就可以过…… 这是为 请问 select top 1 1 from ... oracle高手进为什么这样差不出值来,数据库中是有值的select wm_concat(decode(a,'01','aa',a)) from (select regexp_substr(t.gwys_1,'[^,]+',1,rownum) a,t.pk_dyccqsfjlb_id id from mchis.jdh_mcheck_first t connect by rownum oracle中sum(Part_Order_Detail.Shipped_Qty)什么意思呀还有怎么写呀,就是select.from.之类的格式 org.hibernate.hql.ast.QuerySyntaxException: unexpected token: * near line 1, column 8* near line 1, column 8 [select * from (select t.*, rownum rn from edu.rjxy.entity.Task t) where rn>=(?-1)*?+1 and rn 有三张不同表,对每一个表的指定一列求和,一次执行这三条语句该怎么写?要求三个结果能显示就行.rt每次都有执行三条下列语句:select sum(column1) from table_a;select sum(column2) from table_b;select sum(co select * from book limit , oracle sum()函数的问题~在orale11g中,sum(6)表示的不是第六列的总和,应该是什么呢?在emp表中,第六列是工资,select sum(6) from emp;返回的是84.select sum(sal) from emp;返回的是29025. select * from tablename t 表名后面 t 有什么含义 针对这条语句查表时很慢,怎么才能快一些$orderdetail['yk']=$db->execute(select sum(tb_moneychange.changemoneynum) as yk from tb_moneychange where tb_moneychange.orderno in (select tb_moneychange.orderno from tb_moneychange where tb_mo