我正在构建一个数据仓库时间点(TPIT)表。为此,我需要迭代一个日期列表,并为每个日期插入行。以下是'2020-08-19'的SQL日期。我需要遍历从2000年到今天的所有日期。
在雪花中使用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'));发布于 2020-05-21 16:04:34
您可以使用下面的查询以及子句,并在From子句中将DATE_RANGE作为表引用,并引用MY_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_RANGEhttps://stackoverflow.com/questions/61935266
复制相似问题