You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery运行SQL查询返回首行数据为null空值的问题咨询

问题根源

你写的SQL逻辑没有错误,首行空值记录和跨天、时段差异没有任何关系,问题出在源数据集本身的无效记录上:
bigquery-public-data.new_york_citibike.citibike_trips公开数据集存在大量三个分组字段(usertype、start_station_name、end_station_name)同时为空的无效记录,这些记录会被归为同一个分组,总数量达582万+,远高于正常行程的数量,所以会排在结果首位。
你看到的route字段值为to,是因为CONCAT函数拼接空值时,空值会被当作空字符串处理,CONCAT(null,'to',null)的计算结果就是to。

解决方法

只需要在查询中增加过滤条件,剔除无效记录即可:

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
  AND tripduration IS NOT NULL
 GROUP BY start_station_name, end_station_name, usertype
 ORDER BY num_trips DESC 
 LIMIT 10

运行修改后的SQL就能得到全部为有效行程的前10条结果。

内容的提问来源于stack exchange,提问作者Karl Zaffke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 10:06:03