我有一個 BigQuery 表,其中包含整個國家的點暫存器,我需要為它們中的每一個分配一個“人口統計區”,這些多邊形包含在另一個表中。我一直在嘗試使用這樣的查詢來做到這一點:
SELECT id_point, code_censal_zone
FROM `points_table`
JOIN `zones_table`
ON ST_CONTAINS(zone_polygon, point_geo)
第一個表非常大,因此查詢執行效率非常低,因為它正在比較每個可能的 (point, censal zone) 對。但是,這兩個表都有一個列識別符號,表示它們所在的自治市,所以問題是,可以以某種方式重寫我的查詢,該查詢ST_CONTAINS(*)對屬于同一自治市的每個(點、人口普查區)對執行,因此不比較每個點的國內所有可能的人口普查區?我可以這樣做而不必points_table多次閱讀嗎?
SELECT id_point, code_censal_zone
FROM `points_table`
JOIN `zones_table`
ON 1.municipality = 2.municipality
AND ST_CONTAINS(zone_geo, point_geo)
我對 BigQuery 還是很陌生,所以我真的不知道這樣的查詢是否真的能達到我的預期,因為我在檔案中找不到任何內容。
謝謝!
uj5u.com熱心網友回復:
SELECT id_point, code_censal_zone
FROM `points_table`
JOIN `zones_table`
ON 1.municipality = 2.municipality
AND ST_CONTAINS(zone_geo, point_geo)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/482556.html
