我如何将 GENERATE_DATE_ARRAY(start_date, end_date[ INTERVAL INT64_expr date_part]) 应用于数据集中的每个记录。我了解如何应用它来获取从开始到结束的单个日期范围,但不知道如何将相同的日期数组应用于每个 id。
假设我有两个不同的 ID x 和 y,日期如下:
|id|date
--------------
1 |x |2021-01-01
2 |x |2021-01-03
3 |y |2021-01-06
4 |y |2021-01-09
我想填写每个 ID 的日期间隙
我怎样才能实现以下输出?
|id|date
--------------
1 |x |2021-01-01
2 |x |2021-01-02
3 |x |2021-01-03
4 |y |2021-01-06
5 |y |2021-01-07
6 |y |2021-01-08
7 |y |2021-01-09
以下是 BigQuery 标准 SQL
select id, date from (
select id, date, lead(date) over(partition by id order by date) next_date
from `project.dataset.table`
), unnest(generate_date_array(date, next_date)) date
where not next_date is null
-- order by date
如果适用于您问题中的样本数据 - 输出是
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)