sql—如何迭代地“insert into{table}select from”一系列的约会?

pgvzfuti  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(275)

我正在构建一个数据仓库时间点(tpit)表。为此,我需要遍历日期列表并为每个日期插入行。以下是一个日期“2020-08-19”的sql。我需要重复从2000年到今天的所有日期。
在snowflake中使用sql实现这一点的最佳方法是什么?
我可以在python中实现这一点,但是我正在寻找一种只有sql才能实现这一点的方法,这样就可以将它嵌入每天运行的sql刷新脚本中。
谢谢。

INSERT
    INTO
    MEMBERSHIP_TPIT
SELECT
    MEMBERSHIP_HUB.MEMBERSHIP_HASHKEY AS MEMBERSHIP_HASHKEY,
    '2020-08-19' AS SNAPSHOT_DATE,
    MEMBERSHIP_SAT.LOAD_DATE AS LOAD_DATE
FROM
    MEMBERSHIP_HUB INNER MEMBERSHIP_SAT ON
    (MEMBERSHIP_HUB.MEMBERSHIP_HASHKEY = MEMBERSHIP_SAT.MEMBERSHIP_HASHKEY
    AND '2020-08-19' BETWEEN START_DATE AND COALESCE(END_DATE,
    '9999-12-31'));
sbtkgmzw

sbtkgmzw1#

您可以将下面的查询与with子句一起使用,并在from子句中引用date\ U range作为表格,并引用my\ U date代替“2020-08-19”。

WITH DATE_RANGE AS (
  SELECT DATEADD(DAY, -1*SEQ4(), CURRENT_DATE()) AS MY_DATE
    FROM TABLE(GENERATOR(ROWCOUNT => (365000) )) where my_date >='01-Jan-2000'
 ) 
SELECT * FROM DATE_RANGE

相关问题