首页 > 解决方案 > 如何创建滚动总计字段?

问题描述

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

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

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

我希望结果是一个包含所有客户 ID、所有相应订单 ID 的表格,然后是一个包含订单计数的字段,例如......

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

标签: sqlwindow-functions

解决方案


我认为你正在寻找的是ROW_NUMBER()

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

推荐阅读