我在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
什么将用于获得上述的正确模式?
下面是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