【发布时间】:2020-04-06 21:03:31
【问题描述】:
在 bigQuery SQL 中将一行转换为多行。 行数取决于特定的列值(在本例中为 delta_unit/60 的值):
源表:
ID time delta_unit
101 2019-06-18 01:00:00 60
102 2019-06-18 01:01:00 60
103 2019-06-18 01:03:00 120
ID 102 确实记录了 01:01:00 的时间,而下一条记录是 01:03:00。 所以,我们缺少一条应该是 01:02:00 的记录,而 delta_unit = 60
预期表:
ID time delta_unit
101 2019-06-18 01:00:00 60
102 2019-06-18 01:01:00 60
104 2019-06-18 01:02:00 60
103 2019-06-18 01:03:00 60
根据 delta_unit 创建一个新行。需要创建的行数将取决于值 delta_unit/60(在这种情况下,120/60 = 2)
【问题讨论】:
-
你能提供更多的例子吗?只有一个逻辑不清楚。或者为什么?
-
在第一个数据集中,如果你查看时间列,你会发现 01:02:00 在序列中丢失了。这由 delta_unit 表示,即最后一次捕获记录是 2 分钟前(因此 delta_unit 在 01:03:00 分钟内为 120)有意义吗?
标签: sql google-bigquery