SELECT * FROM TEST;
OID VALUE
1 100
2 200
3 300
4 400
6 500
9 600
. .
. .
SELECT SUM(VALUE) AS RESULT FROM TEST;这个只能得到所有的VALUE的相加的结果2100。
现在我想把OID按升序排列,然后每两条记录的value相加,
现希望用SELECT语句得到如下的记录集怎么做?
OID sum
1 300 (上面的100和200相加的结果)
2 700
3 1100
要是用到存储过程的话,又是怎么做?
OID VALUE
1 100
2 200
3 300
4 400
6 500
9 600
. .
. .
SELECT SUM(VALUE) AS RESULT FROM TEST;这个只能得到所有的VALUE的相加的结果2100。
现在我想把OID按升序排列,然后每两条记录的value相加,
现希望用SELECT语句得到如下的记录集怎么做?
OID sum
1 300 (上面的100和200相加的结果)
2 700
3 1100
要是用到存储过程的话,又是怎么做?
---------- ----------
1 100
2 200
3 300
4 400
6 500
9 6006 行 已选择SQL> ed
SQL> select rownum,value+nvalue as sum from
2 (select oid,value,lead(value) over(order by oid) nvalue,
3 row_number() over(order by oid) rn
4 from test1)
5 where mod(rn,2)=1
6 / ROWNUM SUM
---------- ----------
1 300
2 700
3 1100SQL>