2016-05-17 166 views
0

的總和我有一個表,我一定要得到的輸出如下:SQL查詢來查找列

ID - amount - TotalAmount 
1 - 400 - 400 
2 - 600 - 1000 
3 - 400 - 1400 

表有兩列:ID &量。應該在SQL腳本運行時創建'TotalAmount',並且希望剩下的部分從上面清除。

我該怎麼做以上總和?請分享想法來做到這一點。謝謝。

回答

3

這是累積和。 ANSI標準方法如下:

select id, amount, sum(amount) over (order by id) as TotalAmount 
from t; 

大多數(但不是全部)數據庫支持此語法。

以上是「正確」的解決方案。如果你的數據庫不支持,那麼相關子查詢是一個方法:

select t.id, t.amount, 
     (select sum(t2.amount) from t t2 where t2.id <= t.id) as TotalAmount 
from t; 
+0

非常感謝戈登·利諾夫。第二個查詢工作。 –

2

你不說出你的DBMS,所以這是ANSI SQL:

select id, amount, 
     sum(amount) over (order by id) as totalamount 
from the_table 
0

在SQL Server 2012中這個查詢工作正常。試試這個:

SELECT 
    ID, 
    AMOUNT, 
    SUM(AMOUNT) 
    OVER(ORDER BY ID) AS TotalAmount 
FROM 
    YourTable; 
0
select id, amount, sum(amount) as totalAmount from table_name order by id;