我现在有张表t1(a,b)。数据如下:
a      b
1      34
2      45
3      24
4      55
我现在想用一条sql语句得到如下的数据:
A     B
1     34
2     34+45
3     34+45+24
4     34+45+24+55
请问该如何实现比较简洁,谢谢!

解决方案 »

  1.   

    select a,ltrim(sys_connect_by_path(b,'+'),'+')b
    from t1
    start with a=1
    connect by prior a=a-1
      

  2.   

    SELECT a,SUM(b) OVER(ORDER BY a) FROM t1;
      

  3.   

    SELECT a,SUM(b) OVER(ORDER BY b) FROM t1;
      

  4.   

    不好意思,我发现我这边的情况比这个复杂,这条语句好像还是搞不定:
    大家可以先执行下面语句:
    drop table t1   cascade constraints purge;
    create table t1(a number(3),b number(3),c varchar2(4));
    insert into t1(a,b,c) values(1,34,'aa'); 
    insert into t1(a,b,c) values(1,35,'ee');
    insert into t1(a,b,c) values(2,45,'aa'); 
    insert into t1(a,b,c) values(3,24,'ee'); 
    insert into t1(a,b,c) values(4,55,'aa'); 然后我需要的结果是:
    A   C   B
    1   aa  34
    1   ee  35
    2   aa  34+45
    3   ee  35+24
    4   aa  34+45+55请问这个该怎么写呢?这条语句好像不对:SELECT a,c,SUM(b) OVER(ORDER BY a,c) FROM t1