具有非相邻重复项的每个分区的最大Teradata

问题描述 投票:0回答:1

好吧,这可能有点棘手,所以让我从视觉开始。

这是数据的样子:Original Data From Source

我正在尝试简化它,使其看起来像这样:End Result that I'm working towards

问题是我有一名员工改回前任经理,所以当我尝试对数据进行分区和分组时,这两个实例合并在一起,最终得到的数据如下所示:Actual Results

在上图中,我们可以看到Tom经理的开始日期和结束日期都在Bob经理的开始日期和结束日期之内,这是一个错误。关于如何隔离稍后重新引入的项目分组的任何建议?我相信,这将由“开始日期”和“分区上的排名”确定,但我似乎无法使其正常工作。

这里是用于构建示例数据的查询:

CREATE VOLATILE TABLE VT_AGENT
( 
EmpID INT
,Manager VARCHAR(16)
,Director VARCHAR(16)
,Record_Start DATE
,Record_End DATE
)  ON COMMIT PRESERVE ROWS;

INSERT INTO vt_agent VALUES(12345678, 'Jill M.', 'Mike B.', '2019-08-21', '2019-09-07');
INSERT INTO vt_agent VALUES(12345678, 'Jill M.', 'Mike B.', '2019-09-07', '2019-09-16');
INSERT INTO vt_agent VALUES(12345678, 'Bob S.', 'Mike B.', '2019-09-16', '2019-10-15');
INSERT INTO vt_agent VALUES(12345678, 'Bob S.', 'Mike B.', '2019-10-15', '2019-11-23');
INSERT INTO vt_agent VALUES(12345678, 'Tom A.', 'Mike B.', '2019-11-23', '2019-12-07');
INSERT INTO vt_agent VALUES(12345678, 'Tom A.', 'Mike B.', '2019-12-07', '2019-12-12');
INSERT INTO vt_agent VALUES(12345678, 'Bob S.', 'Mike B.', '2019-12-12', '2020-01-15');
INSERT INTO vt_agent VALUES(12345678, 'Bob S..', 'Mike B.', '2020-01-15', '9999-12-31');

Select * FROM VT_AGENT

好吧,这可能有些棘手,所以让我从视觉开始。数据如下所示:来自源的原始数据我正在尝试简化它,使其看起来像这样:最终结果...

duplicates teradata partition
1个回答
0
投票

假设您的最后一个插入内容有注释中提到的错别字,则可以使用Teradata的Period数据类型(和函数)来使此超级简单:

© www.soinside.com 2019 - 2024. All rights reserved.