首页 > 解决方案 > 在雪花中,如何导出日期维度表中所有日期的最后 365 天

问题描述

我的日期维度表有一列“date_id”,其日期从 2016 年 1 月 1 日到 2025 年 1 月 1 日。我想在这个日期表的顶部创建一个视图并引入一个额外的列“date_id_365”。新列应该包含每个 date_id 的所有最后 365 个日期。

例如,如果我选择一个 date_id 来表示 2020-01-15,那么该 date_id 应该返回从 2019-01-15 到 2020-01-15 的日期。

如何为此编写雪花中的 SQL?

标签: datesnowflake-cloud-data-platform

解决方案


我想也许你正在寻找这样的东西......这是非常标准的 SQL,而不是专门针对 Snowflake。这假设 date_id 是一个 DATE 字段,我在您的评论中没有看到,但您可以转换它或使用日期字段。

SELECT a.date_id, b.date_id as date_id_365
FROM dim_date a
JOIN dim_date b
  ON b.date_id BETWEEN DATEADD(year,-1,a.date_id) AND a.date_id

我自己没有测试过,但很确定这对你有用。唯一的问题是您 2016 年的日期,因为它在 2015 年没有任何日期可以加入。


推荐阅读