如何找到位置之间的平均距离

时间:2019-03-19 17:32:50

标签: sql google-bigquery

我有一张桌子,上面有来源,目的地和位置之间的距离,如下所示

enter image description here

我想计算位置之间的平均距离,例如 如果我们带A到B 路线1:21英里, 路线2:28英里, 路线3:19英里 我期望的结果是:A到B-> 22.66英里 enter image description here 谢谢

1 个答案:

答案 0 :(得分:1)

以下是用于BigQuery标准SQL

#standardSQL
SELECT 
  LEAST(source, destination) source, 
  GREATEST(source, destination) destination, 
  AVG(distance) distance 
FROM `project.dataset.table`
GROUP BY source, destination

您可以使用问题中的示例数据来测试,玩游戏,如下例所示

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 'a' source, 'b' destination, 21 distance UNION ALL
  SELECT 'b', 'a', 28 UNION ALL
  SELECT 'a', 'b', 19 UNION ALL
  SELECT 'c', 'd', 15 UNION ALL
  SELECT 'c', 'd', 17 UNION ALL
  SELECT 'd', 'c', 16.5 UNION ALL
  SELECT 'd', 'c', 18 
)
SELECT 
  LEAST(source, destination) source, 
  GREATEST(source, destination) destination, 
  AVG(distance) distance 
FROM `project.dataset.table`
GROUP BY source, destination

有结果

Row source  destination distance     
1   a       b           22.666666666666668   
2   c       d           16.625