PLACES_COUNT_V2 函式會傳回 BigQuery 資料表,其中包含多個輸入地理位置的場所數量和範例地點 ID (根據指定篩選條件)。這項函式可接受地理區域的輸入表格參數,以進行有效率的批次處理,讓您透過輸入表格提供地理區域,在單一查詢中分析多個感興趣的區域。
語法
SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_V2`( TABLE input_geographies, filters )
參數
PROJECT_NAME:Google Cloud 專案的名稱。LINKED_DATASET_NAME:包含地點洞察函式的 BigQuery 資料集名稱 (例如places_insights___us)。input_geographies:包含要分析地理區域的 BigQuery 資料表。這個資料表必須包含下列資料欄:filters(JSON):JSON 物件,內含用於篩選地點的鍵/值組合。請參閱「篩選參數」。
輸出資料表結構定義
PLACES_COUNT_V2 函式會傳回含有下列資料欄的資料表:
| 資料欄名稱 | 資料類型 | 說明 |
|---|---|---|
geo_id |
STRING | 輸入地理區域的專屬 ID,來自 input_geographies 表格。 |
input_geography |
GEOGRAPHY | input_geographies 表格中的原始 GEOGRAPHY 物件。 |
place_count |
INTEGER | 符合篩選條件的地點總數。 |
sample_place_ids |
ARRAY<STRING> | 最多 250 個符合條件的地點 ID 陣列。 |
運作方式
函式會處理 input_geographies 資料表中的每一列。針對每個 geo 物件,系統會計算地理區域內 (或 geography_radius 內,如果 geo 是點且半徑是在 filters 中指定) 的地點數量。這項計數只會納入符合 filters JSON 物件中定義的所有條件的地點。
範例:計算紐約市三個郡的餐廳數量
這個範例會產生表格,列出紐約市三個郡的營業中餐廳數量。
本例使用美國人口普查局資料 BigQuery 公開資料集,取得紐約市三個郡的邊界:「皇后區」、「布魯克林」和「紐約」。每個郡的邊界都包含在 county_geom 欄中。
我們會先建立臨時資料表 new_york_counties,存放每個郡的 geo_id 和簡化 GEOGRAPHY。
SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`( ( SELECT county_name AS geo_id, ST_SIMPLIFY(county_geom, 100) AS geo FROM `bigquery-public-data.geo_us_boundaries.counties` WHERE state_fips_code = "36" -- New York State AND county_name IN ("Queens", "Kings", "New York") ), JSON_OBJECT( 'types', ["restaurant"], 'business_status', ['OPERATIONAL'] ) );
回應表格會有三列,每列代表一個郡,顯示營運中餐廳的 geo_id、input_geography、place_count 和 sample_place_ids。

使用 PLACES_COUNT_V2 的好處
PLACES_COUNT_V2 相較於 PLACES_COUNT 和 PLACES_COUNT_PER_GEO,具有下列顯著優勢:
- 批次處理:在單一查詢中,透過表格提供多個地理區域輸入內容,有效分析數千個自訂地理區域。
- 效能:使用 BigQuery 最佳化的地理空間聯結,可大幅提升大型資料集的處理速度。
- 可擴充性:可處理大量輸入地理區域,不受單一 JSON 參數大小限制。
- 包含零計數:
PLACES_COUNT_V2會為輸入資料表中的每個geo_id傳回資料列。如果特定地理區域沒有符合條件的地點,place_count會是 0。這樣可確保每個輸入區域都有結果,方便您查看缺少地點的區域。