如何创建滚动总计字段?
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(*)
也是一样的
我正在尝试创建客户在特定时间段内所下订单数量的滚动总数,按日期排序。
我曾尝试使用分区函数,但下面的查询没有产生正确的结果。任何帮助将不胜感激
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(*)
也是一样的