在我的工作中,我正在使用BigQuery中与此类似的表:
id | x | y
a | 1 | 2
a | 2 | 3
a | 3 | 4
b | 1 | 2
b | 2 | 3
b | 3 | 2
c | 3 | 2
c | 2 | 4
c | 3 | 4
...
我们想要获取此数据并执行以下转换:
对于每个唯一的id(例如a、b、c),我们希望将x和y值聚合到一个数组中.
例如,对于id a,我们将得到数组[1,2,3,2,3,4].
基本上,输出表应该如下所示:
id | array
a | [1,2,3,2,3,4]
b | [1,2,3,2,3,2]
c | [3,2,3,2,4,4]
我不确定如何在 bigquery 中只使用SQL/JS UDF来实现.
我只需要编写一个快速的Python脚本就可以做到这一点,但是考虑到我们有大量的ID,我们希望它是可伸缩的.
有没有办法只使用SQL/JS UDF来实现这一点.我的理解是,没有任何聚合函数可以跨列实现这一点.我说的对吗?
我在谷歌的 bigquery 文档中查找了用户定义的函数:https://cloud.google.com/bigquery/docs/reference/standard-sql/user-defined-functions,但没有找到解决方案.