2017-02-24 71 views
0

下面是我的表查詢到組基於排序表結果

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 

我想,如果他們在順序它們進行分組。

+4

(1)用你正在使用的數據庫標記你的問題。 (2)SQL表格表示*無序*集合。沒有列來指定排序,你的問題是沒有意義的。 –

回答

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應該是要排序的列。