Sql 在informatica中查找给定范围之间缺少的日期
我需要使用informatica从表中查找缺少的日期。例如:- 以下日期的数据:-Sql 在informatica中查找给定范围之间缺少的日期,sql,amazon-redshift,Sql,Amazon Redshift,我需要使用informatica从表中查找缺少的日期。例如:- 以下日期的数据:- 2020-09-01, 2020-09-03, 2020-09-06, 2020-09-07 此处缺失的日期为:- 2020-09-02, 2020-09-04, 2020-09-05 我需要将这些缺失的日期填充到目标中,该目标将是平面文件。请帮助。红移没有递归CTE或创建序列的方便方法。如果表中有足够的行,可以执行以下操作: with n as ( select row_number() ove
2020-09-01,
2020-09-03,
2020-09-06,
2020-09-07
此处缺失的日期为:-
2020-09-02,
2020-09-04,
2020-09-05
我需要将这些缺失的日期填充到目标中,该目标将是平面文件。请帮助。红移没有递归CTE或创建序列的方便方法。如果表中有足够的行,可以执行以下操作:
with n as (
select row_number() over (order by date) - 1 as n
from data
),
d as (
select d.date, lead(d.date) over (order by d.date) as next_date
from data d
)
select d + n * interval '1 day' as missing_date
from d join
n
on d + n * interval '1 day' < d.next_date;
n的目的是生成一个数字序列。必须有足够的数字来填补空白。您的基础数据库是什么?红移数据库是否有人也可以帮助解决上述问题?这种递归方法在红移中不起作用。您可以提供另一种方法来在红移中实现它。@amangupta。此查询中没有递归。这里的日期指的是表中的列名,数据指的是表名吗?我对此感到困惑,因为我用列名替换了所有存在的日期,用表名替换了数据。请帮助我,因为我是新手。@amangupta。。数据是表的名称。日期是该表中的一列。