【问题标题】:Dynamic column names in bigquery procedurebigquery 过程中的动态列名
【发布时间】:2021-08-19 22:29:30
【问题描述】:

如何在 Bigquery 过程中动态分配列名。我在我的程序中声明了一个计数器:

DECLARE counter int64 default 1;

在这个过程中,我使用 while 循环来保持自我加入,直到没有更多的父母剩余。我唯一的问题是确定一种查找动态列名的方法。像 manager_id_{@counter} 基于可用的层次结构。

我有以下表格可用:

表 1:

emp_id manager_id
1 1
2 1
3 2
4 3
10 10
20 10
30 20

我的输出:

emp_id manager_id manager_id_1 manager_id_2 manager_id_3 manager_id_4
1 1 1 NULL NULL NULL
2 1 1 2 NULL NULL
3 2 1 2 3 NULL
4 3 1 2 3 4
10 10 10 NULL NULL NULL
20 10 10 20 NULL NULL
30 20 10 20 30 NULL

我能够想出逻辑,唯一缺少的是列名。我看到了很多与 SQL 和其他 DBMS 相关的帖子。但找不到适用于 BigQuery 的内容。

【问题讨论】:

    标签: dynamic google-bigquery procedure columnname


    【解决方案1】:
    DECLARE counter int64 default 1;
    execute immediate "Select " || 5 || " as manager_id_" || counter
    

    【讨论】:

    • 我正在尝试这个程序。这在过程语法错误中的 CREATE OR REPLACE TEMP TABLE 中不起作用:预期“(”或关键字 SELECT 或关键字 WITH 但在 [39:5] 获得关键字 EXECUTE)
    • @NewCoder 您能否提供您的查询。 stackoverflow.com/questions/64383628/…
    【解决方案2】:

    我解决它的方法是使用 Jinja 之类的脚本。

    【讨论】:

      猜你喜欢
      • 2018-06-05
      • 1970-01-01
      • 2020-06-30
      • 1970-01-01
      • 2021-04-13
      • 2021-09-04
      • 1970-01-01
      • 2014-08-16
      • 2019-07-21
      相关资源
      最近更新 更多