BigQuery SQL查询返回非预期首行问题求助
问题解决办法
你在BigQuery中查询得到的第一行结果不符合预期,多半是因为数据集里存在起点/终点站点名称为空、或者用户类型为空的脏数据,这些无效数据被汇总后排在了结果最前面。
修正后的查询语句
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 -- 过滤掉起点/终点为空的无效记录 start_station_name IS NOT NULL AND end_station_name IS NOT NULL -- 过滤掉用户类型为空的记录 AND usertype IS NOT NULL GROUP BY start_station_name, end_station_name, usertype ORDER BY num_trips DESC LIMIT 10
关键改动说明
- 添加
WHERE子句,排除掉没有填写起点、终点站点名称的记录,避免生成类似“ to ”这种无意义的路线 - 同时过滤掉用户类型为空的记录,确保汇总的都是有效用户的骑行数据
这样处理后,返回的前10条结果就都是真实的高频骑行路线,不会再出现无效的第一行数据。
内容的提问来源于stack exchange,提问作者Yasara Ran
相关产品推荐
相关产品推荐

