0

我想知道哪种方法是在 BigQuery 中取消嵌套使用 ARRAY_AGG 生成的数组的最快方法,假设我只想在数组的分区上取一个元素。让我试着更好地解释它

假设我有这个:

with (
select a, ARRAY_AGG(struct(time, value) order by time) as b
group by a
) tbl

假设我只想选择数组的一个元素,特别是数组的最后一个元素(最近时间的那个,因为数组是有序的)。即,以此结尾(其中 time 和 value 假定数组的最后一个元素的值,如上所述):

a | time | value
--+------+------

当然,我可以 unnest(b) 并创建一个分区,但这意味着额外的传递到表中。

有没有办法一次性做到这一点?

4

1 回答 1

2

尝试offset

ARRAY_AGG(struct(time, value) order by time desc limit 1)[offset(0)].*
于 2021-05-18T12:00:21.927 回答