我想对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函数。
我在网上和其他问题上都找过了,但一直找不到任何相关的答案。
你能帮帮我吗?
如果可能,使用此查询创建视图,并仅使用列名将视图用于操作。