Как создать поле скользящего итога? - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь создать скользящее общее количество заказов, сделанных клиентом в течение определенного периода времени, упорядоченных по дате.

Я пытался использовать функцию разделения, но приведенный ниже запрос не дает правильных результатов. Любая помощь будет оценена

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

Я хочу, чтобы результаты были таблицей всех идентификаторов клиентов, всех соответствующих им идентификаторов заказов, а затем полем с количеством заказов, например ...

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

Ответы [ 2 ]

0 голосов
/ 22 января 2019

эта строка вернет вам счет за один год

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

То же самое, если вы используете row_number вместо count (*)

0 голосов
/ 22 января 2019

Я думаю, что вы ищете это ROW_NUMBER()

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