以下是我的表
a 1
a 2
a 1
b 1
a 2
a 2
b 3
b 2
a 1
我的预期输出是
a 4
b 1
a 4
b 5
a 1
我希望它们按顺序分组。
答案 0 :(得分:0)
如果dbms支持窗口函数,则可以使用row_number差异将同一组分配给一列中的连续值(相同)。分配组后,很容易对每个组的值进行求和。
select col1,sum(col2)
from (select t.*,
row_number() over(order by someid)
- row_number() over(partition by col1 order by someid) as grp
from tablename t
) x
group by col1,grp
将tablename,col1,col2,someid替换为相应的列名。 someid应该是要排序的列。