我有表如下(1)
A      B      C
1      a      11
2      a      12
3      b      13
4      b      14
5      b      15 
6      c      16 
7      c      17 
8      c      18 
...
还有很多,大约一万多行数据A是主键
我想取得的结果如下:根据B列的值,取C列的和
比如B列为a的数据有两条,C的和味11+12=23

1   a   23以此类推,比如B列为b的数据有三条,C的和味13+14+15=42

2   b   42
如此的结果为
1   a   23
2   b   42
3   c   51
...一次类推下去

解决方案 »

  1.   

    select b,sum(c) from tb group by b
      

  2.   

    select a,b,sum(c) from tb group by a,b
      

  3.   

    刚才忘记加了一个条件,不好意思A B C  D
    1 a 11 0 
    2 a 12 1 
    3 b 13 0 
    4 b 14 1 
    5 b 15 1   
    6 c 16 1   
    7 c 17 1 
    8 c 18 0 
    ...
    还有很多,大约一万多行数据A是主键
    我想取得的结果如下:根据B列的值,取C列的和
    比如B列为a的数据有两条,C的和味11+12=23

    1 a 23以此类推,比如B列为b的数据有三条,C的和味13+14+15=42

    2 b 42
    如此的结果为
    1 a 23
    2 b 42
    3 c 51...一次类推下去
    但是如果当D列等于0 的时候,该条数据不被加入到累计结果当中
    即如下结果:
    1 a 12
    2 b 29
    3 c 33
      

  4.   


    select row_number() over (order by U.b),U.*
    from(select b,sum(c) 
         from tb 
         where d <> 0
         group by b)U
      

  5.   


    select row_number() over (order by U.b) id,U.*
    from(select b,sum(c)c 
         from tb 
         where d <> 0
         group by b)U
      

  6.   

    select b,sum(c) from tb where d <> 0 group by b
      

  7.   

    select a,b,sum(c) from tb group by a,b