如何创建滚动总计字段?

How to create a rolling total field?

我正在尝试创建客户在特定时间段内所下订单数量的滚动总数,按日期排序。

我曾尝试使用分区函数,但下面的查询没有产生正确的结果。任何帮助将不胜感激

select 
    CustomerID
    , Order ID
    , COUNT(OrderID) OVER (PARTITION BY CustomerID ORDER BY OrderDate) RunningOrderCount
from #existingtable

我希望结果是所有客户 ID 的 table、所有对应的订单 ID,然后是订单计数字段,例如...

CustomerID    OrderID   OrderCount
1234          5675      1
1234          5676      2
1234          5677      3
1234          5678      4
1234          5679      5

我想你要找的是 ROW_NUMBER()

SELECT
    CustomerID
    , OrderID
    , ROW_NUMBER() OVER (PARTITION BY CustomerID ORDER BY OrderDate) RunningOrderCount
from #existingtable

这一行将 return 您计算一年的时间

select 
      CustomerID
     , Order ID
     , count(*) OVER 
            (PARTITION BY CustomerID ORDER BY DATEPART(yy,orderDate) ) as year_total
from #customtable

用row_number代替count(*)

也是一样的