【发布时间】:2020-10-06 13:46:10
【问题描述】:
我有一个维度,其中包含许多类似于以下属性的维度,我已经为 1 个产品和列的子集进行了简化:
我想要做的是总结:对于给定的 ProdID, 当前的 ClosedDate 是什么? 当前关闭日期是什么时候开始的? 上一个 ClosedDate 是什么? 上一个 ClosedDate 是什么时候开始的?
例如从这个例子我的答案是:
关闭日期不遵循任何特定顺序。产品不必有关闭日期,如果有,则为 -1。
据我所知,我可以使用 ROW_NUMBER() 来索引每个历史项目,因为这将有助于处理最近的内容和之前的 ClosedDate。我不知道如何使上一个关闭日期有效,特别是在我有 2 行与 20200408 相关的历史记录的情况下。
任何建议表示赞赏。
【问题讨论】:
-
当
closedDate存在平局时,您如何决定将哪一行视为前行? -
上一个关闭日期值将是与当前行不同的那个,然后是最早的一个(如果有平局,则更高的历史记录)
标签: sql sql-server tsql select window-functions