我有一张桌子,上面有来源,目的地和位置之间的距离,如下所示
我想计算位置之间的平均距离,例如 如果我们带A到B 路线1:21英里, 路线2:28英里, 路线3:19英里 我期望的结果是:A到B-> 22.66英里 谢谢
答案 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