Running-Totals
如何顯示以前記錄的執行總計?
我想知道是否有人可以幫忙。
我有以下程式碼,它基本上將 10 條記錄插入到一個表中。從這張表中,我試圖顯示針對賣家的銷售總額。我嘗試過使用 LAG 功能,但這似乎不起作用。
這是程式碼。
CREATE TABLE Sales ( OrderId Int NOT NULL, Seller varchar(10) NULL, Amount money NULL ) INSERT INTO Sales VALUES (1, 'Alex', 10.00), (2, 'Sarah', 15.00), (3, 'Tracy', 10.25), (4, 'Pete', 10.25), (5, 'Tracy', 11.00), (6, 'Tracy', 10.25), (7, 'Alex', 10.25), (8, 'Jane', 10.25), (9, 'Alex', 20.55) SELECT Seller, Amount, LAG(Amount,1) OVER (PARTITION BY Seller ORDER BY Seller) AS RunningTotal FROM Sales
基本上在這個例子中,我希望得到以下輸出
Seller|Amount|Running Total Alex|10.00|10.00 Alex|1.25|20.25 Alex|20.55|40.90 Jane|10.25|10.25 Pete|10.25|10.25 Sarah|15.00|15.00 Tracy|10.25|10.25 Tracy|11.00|21.25 Tracy|10.25|31.50
希望有人可以幫助並提前感謝。戴夫
我猜你有一個 sql server,但它應該也可以在其他支持視窗函式的 rdms 上工作
SELECT Seller , Amount , SUM(Amount) OVER (PARTITION BY Seller ORDER BY Seller ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS RunningTotal FROM Sales GO
賣家 | 金額 | 執行總計 :----- | ------: | -----------: 亞歷克斯 | 10.0000 | 10.0000 亞歷克斯 | 10.2500 | 20.2500 亞歷克斯 | 20.5500 | 40.8000 簡 | 10.2500 | 10.2500 皮特 | 10.2500 | 10.2500 莎拉 | 15.0000 | 15.0000 特蕾西 | 10.2500 | 10.2500 特蕾西 | 11.0000 | 21.2500 特蕾西 | 10.2500 | 31.5000
db<>在這裡擺弄