有没有办法在Google BigQuery Repeated字段中选择前n个项目?
查看Google文档中的示例:
WITH items AS
(SELECT ["apples", "bananas", "pears", "grapes"] as list
UNION ALL
SELECT ["coffee", "tea", "milk" ] as list
UNION ALL
SELECT ["cake", "pie"] as list)
SELECT list, list[OFFSET(0)] as offset_1, list[OFFSET(1)] as offset_2
FROM items;
Run Code Online (Sandbox Code Playgroud)
给出以下内容:
OFFSET()函数返回一个(非重复)元素。
有没有一种优雅的方法来选择重复字段中的前n个元素(例如n = 2)?查看第1行,输出应为包含两个元素的重复字段:苹果和香蕉。
以下是BigQuery标准SQL
#standardSQL
WITH items AS (
SELECT ["apples", "bananas", "pears", "grapes"] AS list UNION ALL
SELECT ["coffee", "tea", "milk" ] AS list UNION ALL
SELECT ["cake", "pie"] AS list
)
SELECT
list AS original_list,
ARRAY(SELECT item FROM UNNEST(list) item WITH OFFSET pos WHERE pos < 2) new_list
FROM items
Run Code Online (Sandbox Code Playgroud)
输出为
Row original_list new_list
1 apples apples
bananas bananas
pears
grapes
2 coffee coffee
tea tea
milk
3 cake cake
pie pie
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
900 次 |
最近记录: |