bigquery中最大日期的汇总

问题描述 投票:0回答:1

我在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子句中不允许使用聚合函数MAX

什么将用于获得上述的正确模式?

google-bigquery
1个回答
0
投票

下面是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
© www.soinside.com 2019 - 2024. All rights reserved.