将字符串类型Station_id转为INT64时遇Bad int64 value错误如何解决?
解决BigQuery关联字段类型不匹配的报错问题
错误原因
你遇到的报错是因为citibike_stations表的station_id是UUID格式的字符串(比如581211b2-4e42-48f2-8a8f-5f968cb1...),这类字符串本身无法转换为INT64类型。更关键的是,这个字段和citibike_trips表的start_station_id并不是对应的关联字段。
citibike_trips的start_station_id(INT类型)对应的是citibike_stations表中的id字段(同样是INT类型),不需要做类型转换就能直接关联。
修正后的SQL
SELECT s.station_id, s.name, t.number_of_rides as num_rides_starting_at_station FROM ( SELECT start_station_id, COUNT(*) as number_of_rides FROM `bigquery-public-data.new_york_citibike.citibike_trips` GROUP BY start_station_id ) t INNER JOIN `bigquery-public-data.new_york_citibike.citibike_stations` s ON s.id = t.start_station_id ORDER BY t.number_of_rides desc
补充说明
如果你的需求是展示station_id(UUID字符串),只需要在SELECT子句中保留它即可,关联逻辑依然用id字段,这样既满足关联需求,又能获取到你需要的UUID格式站点ID。
内容的提问来源于stack exchange,提问作者leonidas
相关产品推荐
相关产品推荐

