我可以在Google BigQuery用户定义函数中使用查询来返回一些值吗?我一直在搜索文档和stackoverflow数小时,没有任何运气,而且我有一个非常特殊的用例,其中我需要根据多列的值返回一个标量值。
以下是查询的用例:
SELECT campaign,source,medium, get_channel(campaign,source,medium)
FROM table_name
Run Code Online (Sandbox Code Playgroud)
在get_channel() UDF将使用这些参数和复杂的SELECT语句的行返回一个标量值。我已经准备好查询,我只需要找到一种在UDF中使用该查询的方法,老实说,我为此感到茫然,没有理由。
我的用例正确吗?这有可能吗?有其他选择吗?
看起来您想使用UDF从某些查找表中选择标量值。如果是这样,否-您无法在UDF中引用表格-请参见Limits和Limitations
但是,如果您只想对参数进行一些复杂的操作-可以-请参见下面的虚拟示例
#standardSQL
CREATE TEMPORARY FUNCTION get_channel(campaign INT64, source INT64, medium INT64) AS ((
SELECT campaign + source + medium as result_of_complex_select_statement
));
WITH `project.dataset.table_name` AS (
SELECT 1 AS campaign, 2 AS source, 3 AS medium UNION ALL
SELECT 4, 5, 6 UNION ALL
SELECT 7, 8, 9
)
SELECT
campaign,
source,
medium,
get_channel(campaign,source,medium) AS channel
FROM `project.dataset.table_name`
Run Code Online (Sandbox Code Playgroud)
您应该使用JOIN实现目标
| 归档时间: |
|
| 查看次数: |
962 次 |
| 最近记录: |