基于最大日期追加行的SQL



这更像是一个逻辑问题,因为我很难理解它。

假设我有表1,它每天都被截断和填充,并在其中添加一个时间戳列。每天都会向表中添加新记录。

最初将表1复制到表格2,但在随后的运行中,我只想将table 1中的新记录添加到

table2我知道这将是匹配列和只导入MAXDATES的混合,无论查询的实际逻辑如何混乱。

简而言之,我只想根据最大日期将表1中的最新行追加到表2中。

如果您想每天同步表,您可以只查找时间戳_列>current_Date。

如果你想获得最大日期,你可以写这样的东西:

INSERT INTO table2 (x,y,z, timestamp_column)
SELECT x,y,z, current_timestamp() FROM table1
WHERE timestamp_column > 
(SELECT IFNULL(MAX(timestamp_column), '0001-01-01' ) FROM table2);

另一方面,我认为雪花流非常适合这项任务:

https://docs.snowflake.com/en/user-guide/streams-intro.html

您可以创建一个";仅追加";流,并在同步到表2时将其用作源。

最新更新