Как изменить рейтинг в соответствии с изменениями данных - PullRequest
0 голосов
/ 10 июля 2019

Я хочу иметь оконную функцию для ранжирования месяца в соответствии с их значениями. Таким образом, в этом примере 2018-12 будет рангом 1, 2019-01 будет 2 и т. Д.

И я также хочу, чтобы счетчик ранга сбрасывался после перехода в новую когорту, в данном случае, в когорту 2, ранг должен начинаться с 1 снова, и шаблон будет аналогичен когорте 1

SELECT *,
   rank() over (partition by cohort, month order by month asc)
FROM (
    SELECT 1 as cohort, id, date_trunc('month',start_date) as month
    FROM _analysis.terms
    WHERE holiday=FALSE and id >= 125 
    UNION SELECT 2, id, date_trunc('month', start_date) FROM _analysis.terms
    WHERE holiday=FALSE and id >= 126
    ORDER BY cohort, id, month
)
ORDER BY cohort, id, month

enter image description here

1 Ответ

0 голосов
/ 10 июля 2019

Это может помочь

USE AdventureWorks2014
GO
SELECT SalesOrderID,OrderDate,DENSE_RANK() OVER(ORDER BY  MONTH(OrderDate) ASC) [Rank] 
FROM [Sales].[SalesOrderHeader]

enter image description here

...