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

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

(环境以Oracle为准)
...全文
127 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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.......

17,382

社区成员

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

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