表1:
1 2010-01 120
2 2010-02 200
3 2010-03 400如果写一个sql,得到累计数,如下:
1 2010-01 120
2 2010-02 320
3 2010-03 720多谢!!!

解决方案 »

  1.   

    sum(COLNAME)over(order by id)
      

  2.   

    select id,month,sum(num) over (order by id,month) num from table;
      

  3.   

    如果还有分类,怎么累计?多谢回复
    1 2010-01 120 a
    2 2010-02 200 a
    3 2010-03 400 b1 2010-01 120 a
    2 2010-02 320 a
    3 2010-03 400 b
      

  4.   

    select id,month,sum(num) over (partition by type order by id,month) num,type from table;
      

  5.   

    with temp as(
    select 1 id,to_date('2010-01','yyyy-mm') date1,120 num from dual
    union all
    select 2 id,to_date('2010-02','yyyy-mm') date1,200 num from dual
    union all
    select 3 id,to_date('2010-03','yyyy-mm') date1,400 num from dual  
    union all
    select 4 id,to_date('2010-03','yyyy-mm') date1,400 num from dual
    )
    select date1,sum(num) over(partition by date1 order by id,date1) total from temp