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

BigQuery公共数据集JSON查询一致性及骑行距离计算问题

BigQuery公共数据集查询问题解答

查询结果一致性说明

针对你提出的「每次查询bigquery-public-data.new_york_citibike.citibike_trips公共数据集,返回结果是否一致」的问题,分两种情况判断:

  • 数据集未更新时:只要执行的查询语句完全相同(比如无ORDER BY的SELECT *),返回的数据集内容是一致的,但行的顺序可能不固定——因为BigQuery是分布式查询引擎,未指定排序规则时,返回结果的行序由查询执行的分布式节点调度决定,不保证每次相同。
  • 数据集被官方更新时:如果数据集新增了后续时段的骑行数据或修正了原有数据,两次查询的结果会存在差异,因为底层数据源已经变化。

骑行距离计算修正方案

你尝试计算最长、最短骑行距离时出错,核心原因是JSON结果中的经纬度为字符串类型,且手动计算地理距离容易出现校准误差。直接在BigQuery中用内置地理函数计算更准确高效,无需导出JSON处理:

SELECT
  -- 计算最短骑行距离(单位:米)
  MIN(ST_DISTANCE(
    ST_GEOGPOINT(CAST(start_station_longitude AS FLOAT64), CAST(start_station_latitude AS FLOAT64)),
    ST_GEOGPOINT(CAST(end_station_longitude AS FLOAT64), CAST(end_station_latitude AS FLOAT64))
  )) AS shortest_distance_meters,
  -- 计算最长骑行距离(单位:米)
  MAX(ST_DISTANCE(
    ST_GEOGPOINT(CAST(start_station_longitude AS FLOAT64), CAST(start_station_latitude AS FLOAT64)),
    ST_GEOGPOINT(CAST(end_station_longitude AS FLOAT64), CAST(end_station_latitude AS FLOAT64))
  )) AS longest_distance_meters
FROM `bigquery-public-data.new_york_citibike.citibike_trips`

注:语句中增加了CAST转换,确保经纬度从字符串转为浮点型,避免函数执行报错。

内容的提问来源于stack exchange,提问作者Martina Jenkins

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 19:25:16