create table tj
(
col1 number null,
col2 number null,
col3 number null,
col4 number null,
cnt number null
);
insert into tj values(2000,1,2,7,130);
insert into tj values(2001,1,2,7,3455);insert into tj values(2000,2,1,3,67);select * from tj;
2000 1 2 7 130
2001 1 2 7 3455
2000 2 1 3 67
要求将如2000年col2=1,col3=2,col4=7的cnt值累加到2001年col2=1,col3=2,col4=7的cnt值,结果如下:
2000 1 2 7 130
2001 1 2 7 3585
2000 2 1 3 67多谢

解决方案 »

  1.   

    create table tj
    (
    col1 number null,
    col2 number null,
    col3 number null,
    col4 number null,
    cnt number null
    );
    insert into tj values(2000,1,2,7,130);
    insert into tj values(2001,1,2,7,3455);insert into tj values(2000,2,1,3,67);select * from tj;
    2000    1   2  7  130
    2001    1   2  7  3455
    2000    2   1  3  67
    要求将如2000年col2=1,col3=2,col4=7的cnt值累加到2001年col2=1,col3=2,col4=7的cnt值,结果如下:
    2000    1   2  7  130
    2001    1   2  7  3585
    2000    2   1  3  67
    多谢
      

  2.   


    SQL> select tj.*,
      2         sum(cnt) over(partition by col2, col3, col4 order by rownum) sum_cnt
      3    from tj
      4  /      COL1       COL2       COL3       COL4        CNT    SUM_CNT
    ---------- ---------- ---------- ---------- ---------- ----------
          2000          1          2          7        130        130
          2001          1          2          7       3455       3585
          2000          2          1          3         67         67SQL>