我想获得重叠日期记录的输出
> Data: Id Open_date Closed_Date
> 1 2016-01-01 2017-01-01
**> 1 2016-12-31 2018-21-01
> 1 2016-01-01 2018-01-01**
> 2 2017-01-01 2018-02-02
Here, you see the second & 3rd records are starting with date than the closed_Date of their previous records. Here i need to identify those type of records
答案 0 :(得分:0)
由于您的问题不太清楚,我假设您正在寻找开放日期和最近结束日期的最小值。
如果这不是要求,请编辑问题以提供更多详细信息。
select id, min(Open_date), max(Closed_Date)
from table
group by id
答案 1 :(得分:0)
您希望规范化慢慢变化的维度类型2 。当然,处理它们的最佳方法是使用Teradata或ANSI语法使用 Temporal 表。
Teradata中有一个很好的语法,可以根据Period数据类型获得预期结果,但是它可以将您的开始/结束日期转换为句点:
SELECT id,
-- split the period back into seperate dates
Begin(pd) AS Open_date,
End(pd) AS Closed_Date
FROM
(
SELECT NORMALIZE -- magic keyword :-)
id, PERIOD(Open_date, Closed_Date) AS pd
FROM tab
) AS dt