Google bigquery 在bigquery中按最大日期聚合
我在BQ中有以下三行数据: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
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)