Sql 在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

我需要使用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() 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。。数据是表的名称。日期是该表中的一列。