date - 在雪花中,如何导出日期维度表中所有日期的最后 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?
解决方案
我想也许你正在寻找这样的东西......这是非常标准的 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 年没有任何日期可以加入。
推荐阅读
- javascript - 如何在链接单击而不是打开时下载图像
- android - 如何使用带有导航的 CollapsingLayout 高级示例
- python - Anaconda Python 的 shebang 是什么?
- bash - 我应该如何使用 linux `find` 命令搜索一组文件?
- c - “C中的参数”的定义是什么
- linux - mmap 文件上的 fallocate 会减少内存消耗吗?
- python-3.x - 如何使用 for 循环读取多个 pandas 数据帧
- python - 使用`savefig`时在PDF中缺少`matplotlib.imshow`插入的图像
- sql-server - 如何获取sql server中的数据组合?
- windows - 使用 GCloud Compute Windows 实例作为 git 远程服务器