【发布时间】:2020-02-22 07:19:13
【问题描述】:
假设我有下表:
child_id parent_id
1 2
2 3
3 -
4 5
5 6
6 -
7 8
我想创建下表:
child_id parent_id branch_id
1 2 1
2 3 1
3 - 1
4 5 2
5 6 2
6 - 2
7 8 3
其中 branch_id 表示由 parent_id 链接在一起的分组。
但是,行顺序无法保证并且分支可能包含数百行。这排除了对 LAG() 函数的简单使用。
鉴于 BigQuery 的 SQL 的限制,我该如何实现这一目标?
【问题讨论】:
-
BigQuery 不支持递归 CTE 或函数。但是,您可以通过更改数据结构(通过包含顶部的完整路径)或使用脚本 (cloud.google.com/bigquery/docs/reference/standard-sql/scripting) 来做您想做的事情。
标签: sql google-bigquery parent-child