Google bigquery 在bigquery中按最大日期聚合

Google bigquery 在bigquery中按最大日期聚合,google-bigquery,Google Bigquery,我在BQ中有以下三行数据: date instance_id value 2020-01-01 2 'hello' 2020-01-04 2 NULL 2020-02-03 3 'new' 我将如何分组以按日期获取“最新”值?我尝试在以下位置执行联接: SELECT * from `historical_prices` m1 join `historical_prices` m2 ON (m1.ins

我在BQ中有以下三行数据:

date        instance_id   value
2020-01-01  2            'hello'
2020-01-04  2             NULL
2020-02-03  3            'new'
我将如何分组以按日期获取“最新”值?我尝试在以下位置执行联接:

SELECT * from `historical_prices` m1 join `historical_prices` m2 
ON (m1.instance_id=m2.instance_id and m1.date=max(m2.date))
WHERE date > '2020-01-01'
但出现以下错误:

[7:100]处的JOIN ON子句中不允许聚合函数最大值


获取上述内容的正确模式是什么?

下面是针对BigQuery标准SQL的

#standardSQL
SELECT AS VALUE ARRAY_AGG(t ORDER BY date DESC LIMIT 1)[OFFSET(0)]
FROM `project.dataset.historical_prices` t
WHERE date > '2020-01-01'
GROUP BY instance_id
[offset(0)]
在这里做什么?
[offset(0)]
从数组中获取第一个元素,然后将
作为值
确保生成的结构正确输出。您可以通过移除这些部件进行试验,并查看在没有这些部件的情况下会发生什么情况-:o)