我有一种属性记录表,其中包含客户列表、属性和日期。此表每月更新一次,其中包含所有客户的当前属性值。
id attr_val date
1 red 2012-01-01
1 red 2012-02-01
1 blue 2012-03-01
2 green 2012-01-01
2 green 2012-02-01
2 green 2012-03-01
我想重铸或转置此表,以便它列出每个属性值的开始和结束日期。这样我就可以选择一个任意日期并date between start_dt and end_dt
获取该日期的值。
id attr_val start_dt end_dt
1 red 2012-01-01 2012-02-28
1 blue 2012-03-01 NULL
2 green 2012-01-01 NULL
这可以通过单个 SQL 命令实现,还是我需要运行某种更复杂的脚本?目标环境是 Teradata,但我认为该解决方案与平台无关......