首页 > 解决方案 > 生成表的 SQL,其中第 1 列是数字序列,第 2 列是运行总和

问题描述

生成如下表的 SQL(标准或任何主要变体)是什么?

1   1   -- 1
2   3   -- 2+1
3   6   -- 3+2+1
4   10  -- 4+3+2+1
5   15  -- 5+4+3+2+1
6   21  -- 6+5+4+3+2+1

……

第二列是第一列数字的总和。

我无法克服这个:

select rownum from all_objects  where rownum <= 10;

产生第 1 列 (PL/SQL)

试图思考以下几行,但显然它是错误的,即使在语法上也是如此:

select rownum, count(t2.rownum)
 from 
 (select sum(rownum) from all_objects  where rownum <= 10) t2,
 all_objects  
 where rownum <= 10;

标签: sqloracleplsql

解决方案


这是简单的数学

select rownum, rownum * (rownum + 1) / 2
from all_objects
where rownum <= 10;

推荐阅读