PLACES_COUNT_V2 函式

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 資料表。這個資料表必須包含下列資料欄:
    • geo_id (STRING):每個地理區域的專屬 ID。
    • geo (GEOGRAPHY):代表區域的 BigQuery GEOGRAPHY 物件。可以是點、多邊形或其他地理位置類型。
  • 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_idinput_geographyplace_countsample_place_ids

紐約各郡的「地點數量」函式結果。

使用 PLACES_COUNT_V2 的好處

PLACES_COUNT_V2 相較於 PLACES_COUNTPLACES_COUNT_PER_GEO,具有下列顯著優勢:

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