SQL执行报错:第4行标识符ROUND处期望输入结束 涉及COUNT函数
SQL报错修复方案
错误根因
你提交的SQL存在3处语法错误,直接触发了该报错:
route字段定义行末尾缺少字段分隔逗号,导致解析器认为SELECT块到这里就结束了,下一行的COUNT标识符不符合预期- 计数行的聚合函数写法错误:不支持
COUNT(SUM())这种嵌套聚合逻辑,同时括号未闭合,还缺少末尾分隔逗号 - 不需要用
SUM(Row)来统计出行次数,直接计数分组内的记录数即可
修复后可运行代码
SELECT usertype, CONCAT(start_station_name, " to ", end_station_name) AS route, COUNT(*) AS num_trips, ROUND(AVG(cast(tripduration as int64)/60), 2) AS duration FROM `bigquery-public-data.new_york_citibike.citibike_trips` GROUP BY start_station_name, end_station_name, usertype ORDER BY num_trips DESC LIMIT 10
调整说明
- 补全了
route、num_trips字段定义末尾的逗号,符合多字段查询的语法要求 - 把错误的计数逻辑替换为
COUNT(*) AS num_trips,直接统计每个分组的出行次数 - 修正了所有括号未闭合的问题
内容的提问来源于stack exchange,提问作者R Fernandes
相关产品推荐
相关产品推荐

