gpt4 book ai didi

google-bigquery - 如何使用间隔交叉加入 Big Query?

转载 作者:行者123 更新时间:2023-12-02 00:03:06 24 4
gpt4 key购买 nike

如何在 Google Big Query 中使用间隔连接两个表?

我有两个表:

Table CarsGPS:
ID | Car | Latitude | Longitude
1 | 1 | -22.123 | -43.123
2 | 1 | -22.234 | -43.234
3 | 2 | -22.567 | -43.567
4 | 2 | -22.678 | -43.678
...

Table Areas:
ID | LatitudeMin | LatitudeMax | LongitudeMin | LongitudeMax
1 | -22.124 | -22.120 | -43.124 | -43.120
2 | -22.128 | -22.124 | -43.128 | -43.124
...

我想交叉连接这些表,以使用 Google Big Query 检查每辆车经过哪些区域。

在常规 SQL 服务器中,我会:
SELECT A.ID, C.Car 
FROM Cars C, Areas A
WHERE C.Latitude BETWEEN A.LatitudeMin AND A.LatitudeMax AND
C.Longitude BETWEEN A.LongitudeMin AND A.LongitudeMax

但是 Google Big Query 只允许我使用连接表之间的完全匹配进行连接(甚至 JOIN EACH)。而“FROM X, Y”的意思是 UNION,而不是 JOINS。

所以,这不是一个选择:
SELECT A.ID, C.Car 
FROM Cars C
JOIN EACH
Areas A
ON C.Latitude BETWEEN A.LatitudeMin AND A.LatitudeMax AND
C.Longitude BETWEEN A.LongitudeMin AND A.LongitudeMax

那么,我如何运行类似的东西来识别每个区域内有哪些汽车经过?

提前致谢,

最佳答案

BigQuery 现在支持 CROSS JOIN。您的查询如下所示:

SELECT A.ID, C.Car 
FROM Cars C
CROSS JOIN Areas A
WHERE C.Latitude BETWEEN A.LatitudeMin AND A.LatitudeMax AND
C.Longitude BETWEEN A.LongitudeMin AND A.LongitudeMax

关于google-bigquery - 如何使用间隔交叉加入 Big Query?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20136990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com