sum(1)做什么的啊?

nuoboxgx 2010-02-03 03:38:18
偶尔看到sum(1)
悄悄的问一下,干什么用的啊?

举个例子了哦?
...全文
441 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
比如aaa表:
ID,NAME,SHU
1,a,3
2,a,4
3,b,5
4,b,7
5,a,
6,a,20
sum 与count 的区别:
select name, count(shu), sum(shu) 
from aaa
group by name

结果为:a 3 27
b 2 12
可见:oracle 数据库中对空值的事不同的,count 函数认为没有此项,而sum函数不计算。
结论: 求和用累加 sum ,求行的个数用累计 count

roylogic 2010-02-03
  • 打赏
  • 举报
回复
相当于统计记录数,你可以写条语句试一下。
YY_MM_DD 2010-02-03
  • 打赏
  • 举报
回复
如果是1的话和统计记录数一个效果
nuoboxgx 2010-02-03
  • 打赏
  • 举报
回复
补充下:
以这个列子来讲下吧?
select ccc,sum(1)
from ttt
where ccc like 'sss%'
group by ccc;
到底是对第一列求和,还是统计记录数?

(环境以Oracle为准)
vanjayhsu 2010-02-03
  • 打赏
  • 举报
回复
count(1)
Phoenix_99 2010-02-03
  • 打赏
  • 举报
回复
sum(n) 相当于 列数 * n
YY_MM_DD 2010-02-03
  • 打赏
  • 举报
回复
sum(n);
就相当于
total = 0;
for(i=0;i<列数;i++)
{
total = total + n;
}
iqlife 2010-02-03
  • 打赏
  • 举报
回复
第一列的记录数
iqlife 2010-02-03
  • 打赏
  • 举报
回复
说错,对第一列数求和
往何 2010-02-03
  • 打赏
  • 举报
回复
刚刚不小心提交了

继续
b. select sum(1) from test;
如果表test中有十条记录,则结果为10
如果表test中有两条记录, 则结果为2
意思也就是说,查询了多少条数据就加几次1,如果是针对表中的字段的,就是对该字段对应的值进行求和
YY_MM_DD 2010-02-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 java3344520 的回复:]
对表的第一列求和
[/Quote]

对第一列求和..别吓我类。。
往何 2010-02-03
  • 打赏
  • 举报
回复
求和
eg.
a. select sum(1) from dual;
是结果为 1
b.select sum(1) from test;
iqlife 2010-02-03
  • 打赏
  • 举报
回复
对表的第一列求和
YY_MM_DD 2010-02-03
  • 打赏
  • 举报
回复
对一求和嘛..相当于count(*)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧