[英]big query materialized view; create a materialized view using an (inner) join
[英]How to cross join in Big Query using intervals?
如何在 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.