【发布时间】:2018-07-30 12:28:16
【问题描述】:
假设这是我的桌子:
ID NUMBER DATE
------------------------
1 45 2018-01-01
2 45 2018-01-02
2 45 2018-01-27
我需要使用 partition by 和 row_number 来分隔一个日期与另一个日期之间的差异大于 5 天。上例的结果是这样的:
ROWNUMBER ID NUMBER DATE
-----------------------------
1 1 45 2018-01-01
2 2 45 2018-01-02
1 3 45 2018-01-27
我的实际查询是这样的:
SELECT ROW_NUMBER() OVER(PARTITION BY NUMBER ODER BY ID DESC) AS ROWNUMBER, ...
但是您可以注意到,它不适用于日期。我怎样才能做到这一点?
【问题讨论】:
-
制作一个包含开始日期范围和结束日期范围的日期表,然后给每个范围一个 id。按日期加入日期表,按日期范围的id分区
标签: sql sql-server tsql