BigQuery - ARRAY_ARG 和 UNNEST 在需要一个元素时在同一通道上

BigQuery - ARRAY_ARG and UNNEST on the same pass when one element is needed

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

假设我有这个:

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

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

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

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

有没有办法一次性完成?

尝试 offset:

ARRAY_AGG(struct(time, value) order by time desc limit 1)[offset(0)].*