sql - 雪花需要根据列值在循环中运行sql插入
问题描述
我有一张如下表
id date. no_of Days
12 12-03-1999 30
13 12-03-1999 7
14 12-03-1999 22
15 12-03-1999 12
我需要创建另一个表,其中包含一个额外字段作为 date_increment,它将基于给定日期递增到基于 1 天的 no_of_days。输出将如下所示
id date. no_of Days. date_increment
12 12-03-1999 30 12-03-1999
12 12-03-1999 30 13-03-1999
12 12-03-1999 30 14-03-1999
.. ..... .. till 30 days
13 12-03-1999 7 12-03-1999
13 12-03-1999 7 13-03-1999
13 12-03-1999 7 14-03-1999
.. ... .. till 7 day
14 12-03-1999 22
15 12-03-1999 12
我正在为不支持循环或动态查询的雪花编写此查询。有人可以建议。
即使我使用像 python 这样的另一个 IDE,我也不知道如何解决这个问题。
解决方案
一种方法是使用generator()
:
select t.*, date + (n - 1) * interval '1 day'
from t join
(select seq4() as n
from table(generator(rowcount => 100)) g
) n
on n.n <= t.no_of_days;
推荐阅读
- css - CSS变量可以用于重新计算自己的值吗?
- python - 如何循环包含多个函数的代码?
- rabbitmq - RabbitMQ keep processing order of jobs in a same group
- docker - 我们如何调试处于不健康状态的 Docker 容器?
- database-migration - 在 Liquibase 中,迁移/变更集数量的合理限制是什么
- angular - 为什么 Async Await 不能与 Angular @Action 一起使用
- javascript - 无法读取 vue-jquery 中未定义的属性“createDocumentFragment”
- google-cloud-platform - 如何通过 Terraform 管理 BigQuery 表的架构更改
- styled-components - 我想使用从样式组件中获得的 url 作为道具
- windows - “npm 通知创建了一个锁文件作为 package-lock.json。你应该提交这个文件。”