【发布时间】:2021-06-05 17:37:33
【问题描述】:
我有一个缓慢变化的类型 2 价格变化表,我需要减小它的大小以提高性能。即使没有发生价格变化(当某些其他维度字段发生变化时),通常也会将行写入表中,结果是对于任何产品,如果表仅包含价格变化,则表可能是所需大小的 3-10 倍.
我想压缩表格,使其仅包含每个价格的第一个生效日期和最后一个到期日期,直到该价格也可以更改
- 处理未知数量的同价行
- 处理恢复到旧价格的产品
作为一个例子,如果我有这个原始数据:
| Product | Price Effective Date | Price Expiration Date | Price |
|---|---|---|---|
| 123456 | 6/22/18 | 9/19/18 | 120 |
| 123456 | 9/20/18 | 11/8/18 | 120 |
| 123456 | 11/9/18 | 11/29/18 | 120 |
| 123456 | 11/30/18 | 12/6/18 | 120 |
| 123456 | 12/7/18 | 12/19/18 | 85 |
| 123456 | 12/20/18 | 1/1/19 | 85 |
| 123456 | 1/2/19 | 2/19/19 | 85 |
| 123456 | 2/20/19 | 2/20/19 | 120 |
| 123456 | 2/21/19 | 3/19/19 | 85 |
| 123456 | 3/20/19 | 5/22/19 | 85 |
| 123456 | 5/23/19 | 10/10/19 | 85 |
| 123456 | 10/11/19 | 6/19/19 | 80 |
| 123456 | 6/20/20 | 12/31/99 | 80 |
我需要把它变成这样:
| Product | Price Effective Date | Price Expiration Date | Price |
|---|---|---|---|
| 123456 | 6/22/18 | 12/6/18 | 120 |
| 123456 | 12/7/18 | 2/19/19 | 85 |
| 123456 | 2/20/19 | 2/20/19 | 120 |
| 123456 | 2/21/19 | 10/10/19 | 85 |
| 123456 | 10/11/19 | 12/31/99 | 80 |
【问题讨论】:
-
用您正在使用的数据库标记您的问题。
标签: sql type-2-dimension