Running-Totals

如何顯示以前記錄的執行總計?

  • January 10, 2021

我想知道是否有人可以幫忙。

我有以下程式碼,它基本上將 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<>在這裡擺弄

引用自:https://dba.stackexchange.com/questions/282962