[sum(1)有啥特别的?]麻烦有Oracle环境的帮我跑下

nuoboxgx 2010-02-03 05:21:17
select ccc,sum(1)
from ttt
where ccc like 'sss%'
group by ccc;
到底是对第一列求和,还是统计记录数?

(环境以Oracle为准)
...全文
72 点赞 收藏 10
写回复
10 条回复
Blaider 2010年02月04日
学习了……
回复 点赞
ojuju10 2010年02月04日
sum(1) = count(1)
回复 点赞
gerrynj 2010年02月04日
[Quote=引用 6 楼 wh62592855 的回复:]
sum(n)相当于n*count(*)
[/Quote]
正解
回复 点赞
vanjayhsu 2010年02月04日
呵呵,都有高手解答了,学习。。。
回复 点赞
wh62592855 2010年02月03日
sum(n)相当于n*count(*)
回复 点赞
duqiangcise 2010年02月03日
不错
回复 点赞
BenChiM888 2010年02月03日

SQL> WITH tt AS(
2 SELECT 1 a,2 b FROM dual
3 )SELECT SUM(1) FROM tt;

SUM(1)
----------
1

SQL>
SQL> WITH tt AS(
2 SELECT 1 a,2 b FROM dual UNION ALL
3 SELECT 2 a,2 b FROM dual
4 )SELECT SUM(1) FROM tt;

SUM(1)
----------
2

SQL>
SQL> WITH tt AS(
2 SELECT 1 a,2 b FROM dual UNION ALL
3 SELECT 2 a,2 b FROM dual UNION ALL
4 SELECT 3 a,2 b FROM dual
5 )SELECT SUM(1) FROM tt;

SUM(1)
----------
3


你可以这么理解:
select sum(字段) from 表名; 是对表里面的字段求和,这个我想你不会陌生。
那么如果这个表里面这个字段的值全是【1】的话就是:
select sum(1) from 表名; 了。这么说你应该可以理解了。
回复 点赞
iqlife 2010年02月03日
统计记录数啊,晕倒,我之前说错了啊
有多少记录就有多少个1相加,可以作为统计记录的一种方法,当然还可以COUNT(*)来统计
回复 点赞
suiziguo 2010年02月03日
统计记录数。怎么对第一列求和?万一第一列不是数值怎么办?
回复 点赞
YY_MM_DD 2010年02月03日
sum(1) = count(*)*1
sum(2) = count(*)*2
sum(3) = count(*)*3
sum.......
回复 点赞
发动态
发帖子
基础和管理
创建于2007-09-28

7175

社区成员

9.5w+

社区内容

Oracle 基础和管理
社区公告
暂无公告