SQL查询BigQuery纽约公共单车数据集返回首行空白行问题咨询
问题原因
你所使用的bigquery-public-data.new_york_citibike.citibike_trips公共数据集本身存在大量脏数据:部分骑行记录的usertype、start_station_name、end_station_name字段值为NULL。
你当前的SQL没有过滤这类空值记录,GROUP BY聚合时会把所有空值的记录归为同一组,这类无效记录的总量往往高于正常站点的骑行量,按num_trips降序排序后就会出现在结果第一行,表现为usertype、Route列无有效内容的空白行。
解决方案
在查询逻辑中增加WHERE条件,过滤掉三个分组字段为空的无效记录即可,同时可删除原代码中冗余的逗号避免潜在语法报错。
调整后完整代码
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` WHERE usertype IS NOT NULL AND start_station_name IS NOT NULL AND end_station_name IS NOT NULL GROUP BY start_station_name, end_station_name, usertype ORDER BY num_trips DESC LIMIT 10
内容的提问来源于stack exchange,提问作者Deepak
相关产品推荐
相关产品推荐

