Mar*_*ari 4 sql arrays google-bigquery
我想知道是否可以在Google BigQuery中为单个数组值订购(应用order by)?
我能够通过首先在整个transactonal基表上应用order,然后聚合数组来实现这一点; 但是当表太大时,会出现资源错误,以便通过大表进行排序.
所以我想知道是否可以使用SQL或UDF对每个单独的数组值进行排序.
这曾被问过一次大数据重复记录的数据顺序,但这是4,5年前.
Ell*_*ard 11
当然,您可以使用ARRAY功能.它支持可选的ORDER BY子句.您没有提供示例数据,但假设您有一个名为的顶级数组列arr
,您可以执行以下操作:
SELECT
col1,
col2,
ARRAY(SELECT x FROM UNNEST(arr) AS x ORDER BY x) AS arr
FROM MyTable;
Run Code Online (Sandbox Code Playgroud)
这会arr
按其值排序元素.如果您实际上有一个结构类型的数组,例如ARRAY<STRUCT<a INT64, b STRING>>
,您可以按以下结构字段排序:
SELECT
col1,
col2,
ARRAY(SELECT x FROM UNNEST(arr) AS x ORDER BY a) AS arr
FROM MyTable;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2519 次 |
最近记录: |