我有一个如下数据,我正在尝试实现一个缓慢变化的维度-2
DECLARE @MYTABLE TABLE
(
LocalID INT,
STDID INT,
MYDATE DATE,
SKU VARCHAR(100),
LOCALPRICE DECIMAL(8,2)
)
INSERT INTO @MYTABLE
SELECT 1000004, 1038, '2017-10-17',34106860642, 5215 UNION ALL
SELECT 1000004, 1038, '2017-10-17',34106860642, 5648 UNION ALL
SELECT 1000004, 1038, '2017-10-17',34106860642, 5615 UNION ALL
SELECT 1000004, 1038, '2017-10-17',34106860642, 5901
但数据的问题是:创建一个
的组合键时会出现重复LocalID, STDID, and SKU
由于密钥列重复,因此合并语句会产生错误。
如何在实施 SCD-TYPE 2 时处理此类数据?
答案 0 :(得分:0)
慢慢更改类型2的维度是指保持维度的先前状态和新状态。为了做到这一点,你必须有一个将它们彼此分开的列(键列)。因此,您可以在维度表中为ID添加列,而不使用您正在使用的组合。或者添加一个额外的列,如版本或有效日期或类似的东西,并在密钥中包含该列。根据您的需要,您可以使用版本列,其值为1,2,3,4或有效日期列(此处可以查看更改发生的时间)或当前列设置为1而其他列设置为0 (但如果密钥仅基于此,您将再次拥有重复项)