首页 > 解决方案 > Bigquery 错误代码:窗口 ORDER BY 表达式引用列 start_date 既不分组也不聚合

问题描述

我正在使用 BigQuery for SQL,但我无法弄清楚为什么会出现这样的错误消息:

Window ORDER BY expression references column start_date which is neither grouped nor aggregated at [4:73]

这是我的代码:

SELECT EXTRACT(WEEK FROM start_date) as week, count(start_date) as count,
RANK() OVER (PARTITION BY start_station_name ORDER BY EXTRACT(WEEK FROM start_date))
from `bigquery-public-data.london_bicycles.cycle_hire`
GROUP BY EXTRACT(WEEK FROM start_date), start_station_name)

我想我已经将下面的一周分组了,如最后一行所示。那么是什么导致此错误消息不断弹出?

标签: sqlgoogle-bigquery

解决方案


这是 BigQuery 中的一个解析错误,您可以使用聚合函数解决该错误。您的查询还有另一个问题,即start_station_name.

SELECT EXTRACT(WEEK FROM start_date) as week, start_station_name, count(start_date) as count,
       RANK() OVER (PARTITION BY start_station_name ORDER BY MIN(EXTRACT(WEEK FROM start_date)))
from `bigquery-public-data.london_bicycles.cycle_hire`
GROUP BY 1, 2;

MIN()除了使用 BigQuery 解析查询之外,它真的没有任何用途。因为表达式是 的一部分GROUP BY,所以只有一个值MIN()需要考虑。

这是 BigQuery 解析中的一个错误,因为它无法识别表达式与GROUP BY. 令人高兴的是,它很容易解决。


推荐阅读