我在 BigQuery 中有一個表,名為project.dataset.table. 該表在其他一些列中有一ourpolygons列,其資料型別為GEOGRAPHY。
我正在嘗試應用于ST_UNION該ourpolygons列,以獲得一個多面體,即我們所有多邊形的聯合。是BigQueryST_UNION中的一個地理函式。
使用這個答案,我嘗試了:
SELECT ST_UNION(ourpolygons) FROM (SELECT ourpolygons FROM `project.dataset.table`) AS multipolig;
我得到錯誤:
No matching signature for function ST_UNION for argument types: GEOGRAPHY. Supported signatures: ST_UNION(GEOGRAPHY, GEOGRAPHY); ST_UNION(ARRAY<GEOGRAPHY>) at [1:8]
我也試過:
SELECT ST_UNION(ourpolygons) FROM `project.dataset.table` AS multipolig;
給我錯誤:
No matching signature for function ST_UNION for argument types: GEOGRAPHY. Supported signatures: ST_UNION(GEOGRAPHY, GEOGRAPHY); ST_UNION(ARRAY<GEOGRAPHY>) at [1:8]
最終,我會將結果放入一個新表中,其中只有一行:聯合。
如何從現有表中選擇所有多邊形并創建它們的并集?
uj5u.com熱心網友回復:
你應該使用ST_UNION_AGG而不是ST_UNION
ST_UNION是在您的表中水平創建一個聯合:當您有一列包含要轉換為單個地理物件的陣列時,或者要合并為兩列地理物件的兩列時。在操作結束時,您的表具有相同的行數。
ST_UNION_AGG是垂直地進行聯合:您有一列地理物件要聚合成一個(可能是每組..)在操作結束時,您的行只聚合成一行(或數字組,如果您有GROUP BY)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/425006.html
