如何在bigquery中为多列重复一段代码



我想对bigquery中的许多列重复一段带有复杂操作(在子查询中定义(的代码。我找不到比多次复制并粘贴每个列名的同一代码块更好的方法了。举个例子,三个不同列的相同操作:

SELECT 
SQRT(a_name1 + b_name1) AS result_name1,
SQRT(a_name2 + b_name2) AS result_name2,
SQRT(a_name3 + b_name3) AS result_name3
FROM
(
SELECT
SUM(name1_col1 + name1_col2 / name1_col3) / SUM(name1_col1)  AS a_name1,
SUM(name1_col1 * name1_col2 + name1_col3) / SUM(name1_col2) AS b_name1,
SUM(name2_col1 + name2_col2 / name2_col3) / SUM(name2_col1) AS a_name2,
SUM(name2_col1 * name2_col2 + name2_col3) / SUM(name2_col2) AS b_name2,
SUM(name3_col1 + name3_col2 / name3_col3) / SUM(name3_col1)  AS a_name3,
SUM(name3_col1 * name3_col2 + name3_col3) / SUM(name3_col2) AS b_name3
FROM data
)

数据类似

name1_col1 | name1_col2 | name1_col3 | name2_col1 | name2_col2 | name2_col3 | name3_col1 | name3_col2 | name3_col3 |
1     |        2   |     3.1    |     1.2    |    -0.4    |   0.3      |    2       |    3       |     3.4    |
...

由于存在聚合操作,因此似乎不可能定义UDF函数。

我在网上和其他问题上都找过了,但一直找不到任何相关的答案。

你能帮帮我吗?

如果可能,使用此查询创建视图,并仅使用列名将视图用于操作。

相关内容

  • 没有找到相关文章

最新更新