BigQuery 中的层次结构查询

Hierarchy Queries in BigQuery

我通过这种方式从 ControlM(调度程序)获得数据

PREDECESSOR_JOB_ID,SUCCESSOR_JOB_ID
XYZ,ABC
ABC,LMN
ABC,PQR
XYZ,EFG
EFG,STU
STU,TUV
STU,VWX
.
.
.

我看到很多解决方案都是从第一个节点开始,然后下降到最后一个节点。但这很可能会随着这些数据而散开。 我正在寻找一个扇入解决方案,我可以从任何端节点开始并走向第一个节点

在这种情况下,我正在寻找的答案是

ABC-->XYZ
LMN-->ABC-->XYZ
PQR-->ABC-->XYZ
EFG-->XYZ
STU-->EFG-->XYZ
TUV-->STU-->EFG-->XYZ
VWX-->STU-->EFG-->XYZ

考虑以下方法

with recursive iterations as (
  select successor_job_id, predecessor_job_id, 1 pos from your_table
  union all 
  select b.successor_job_id, a.predecessor_job_id, pos + 1 
  from your_table a join iterations b
  on b.predecessor_job_id = a.successor_job_id 
)
select successor_job_id || '-->' || string_agg(predecessor_job_id, '-->' order by pos) as jobs_path
from iterations
where not successor_job_id is null
group by successor_job_id             

如果应用于您问题中的示例数据 - 输出为