如果我有一张看起来像这样的桌子
begin date end date data
2013-01-01 2013-01-04 7
2013-01-05 2013-01-06 9
我怎样才能让它像这样被退回......
date data
2013-01-01 7
2013-01-02 7
2013-01-03 7
2013-01-04 7
2013-01-05 9
2013-01-06 9
我正在考虑做的一件事是拥有另一个只有所有日期的表,然后使用只有日期的表加入上表date>=begin date
,date<=end date
但这似乎有点笨拙,不得不维护那个只有重复日期的额外表.
在某些情况下,我没有数据范围,只有一个as of
日期,基本上看起来像我的第一个示例,但没有end date
. end date
下一行的“截至”日期暗示了这一点(即结束日期应该是下一行的-1 as of
)。我对此有一个“解决方案”,它使用 row_number() 函数来获取下一个值,但我怀疑这种方法,我这样做的方式有一堆嵌套的自连接,会导致查询时间很长。