sql - 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)
我想我已经将下面的一周分组了,如最后一行所示。那么是什么导致此错误消息不断弹出?
解决方案
这是 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
. 令人高兴的是,它很容易解决。
推荐阅读
- c# - 使用WhenAny处理每个任务的异常
- java - alicebot 包中的“MagicBooleans”、“MagicStrings”是什么?
- php - 与爆炸变量 Yii2 之间
- php - PHP PDO 准备好的语句 - 无法插入布尔值 false
- java - 找不到符号 - 但变量在那里
- ruby-on-rails - 无法在 ruby on rails 中将数据插入数据库
- elasticsearch - 为同一主机上的两个站点设置 Elasticsearch
- java - 二维数组的流式操作
- python - 使谷歌日历 python API 客户端使用特定的浏览器配置文件
- php - 如何使用带有多个输入文件的 PHP“SWITCH”功能从 HTML 表单上传多个文件?