Anzahl der POIs in der Anfrage

Die Funktion PLACES_COUNT_V2 gibt eine BigQuery-Tabelle mit Ortszahlen und Beispiel-Orts-IDs für mehrere Eingabegeografien basierend auf angegebenen Filtern zurück. Diese Funktion ist für die effiziente Batchverarbeitung konzipiert, da sie einen Eingabe tabellen parameter für Geografien akzeptiert. So können Sie viele Interessengebiete in einer einzigen Abfrage analysieren , indem Sie die Geografien über eine Eingabetabelle bereitstellen.

Syntax

SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_V2`(
  TABLE input_geographies,
  filters
)

Parameter

  • PROJECT_NAME: Der Name Ihres Google Cloud-Projekts.
  • LINKED_DATASET_NAME: Der Name des BigQuery-Datasets mit den Places Insights-Funktionen (z.B. places_insights___us).
  • input_geographies: Eine BigQuery-Tabelle mit den zu analysierenden Geografien. Diese Tabelle muss die folgenden Spalten enthalten:
    • geo_id (STRING): Eine eindeutige ID für jede Geografie.
    • geo (GEOGRAPHY): Das BigQuery-GEOGRAPHY-Objekt, das das Gebiet darstellt. Dies kann ein Punkt, ein Polygon oder ein anderer Geografietyp sein.
  • filters (JSON): Ein JSON-Objekt mit Schlüssel-Wert-Paaren zum Filtern der Orte. Weitere Informationen finden Sie unter Filterparameter.

Ausgabetabellenschema

Die Funktion PLACES_COUNT_V2 gibt eine Tabelle mit den folgenden Spalten zurück:

Spaltenname Datentyp Beschreibung
geo_id STRING Die eindeutige ID für die Eingabegeografie aus der Tabelle input_geographies.
input_geography GEOGRAPHY Das ursprüngliche GEOGRAPHY-Objekt aus der Tabelle input_geographies.
place_count INTEGER Die Gesamtzahl der Orte, die den Filtern entsprechen.
sample_place_ids ARRAY<STRING> Ein Array mit bis zu 250 Orts-IDs, die den Kriterien entsprechen.

Funktionsweise

Die Funktion verarbeitet jede Zeile in der Tabelle input_geographies. Für jedes geo Objekt wird die Anzahl der Orte gezählt, die sich innerhalb der Geografie (oder innerhalb von der geography_radius, wenn das geo ein Punkt ist und der Radius in den filters angegeben ist) befinden. Die Anzahl umfasst nur Orte, die alle im JSON-Objekt filters definierten Bedingungen erfüllen.

Beispiel: Anzahl der Restaurants in drei Bezirken von New York City berechnen

In diesem Beispiel wird eine Tabelle mit der Anzahl der geöffneten Restaurants in drei Bezirken von New York City erstellt.

In diesem Beispiel wird das öffentliche BigQuery-Dataset des United States Census Bureau verwendet, um die Grenzen für drei Bezirke in New York City abzurufen: „Queens“, „Kings“ und „New York“. Die Grenzen der einzelnen Bezirke sind in der Spalte county_geom enthalten.

Zuerst erstellen wir eine temporäre Tabelle new_york_counties, die die geo_id und die vereinfachte GEOGRAPHY für jeden Bezirk enthält.

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']
  )
);

Die Antworttabelle enthält drei Zeilen, eine für jeden Bezirk, mit der geo_id, input_geography, place_count und sample_place_ids der geöffneten Restaurants.

Ergebnisse für die Funktion „Orte zählen“ in den Bezirken von New York.

Vorteile der Verwendung von PLACES_COUNT_V2

PLACES_COUNT_V2 bietet erhebliche Vorteile gegenüber PLACES_COUNT und PLACES_COUNT_PER_GEO:

  • Batchverarbeitung:Analysieren Sie effizient Tausende von benutzerdefinierten Geografien in einer einzigen Abfrage, indem Sie mehrere Geografieeingaben in einer Tabelle bereitstellen.
  • Leistung: Nutzt die optimierten räumlichen Joins von BigQuery , die bei großen Datensätzen erhebliche Geschwindigkeitsvorteile bieten.
  • Skalierbarkeit:Kann eine große Anzahl von Eingabegeografien verarbeiten, ohne die Einschränkungen der Größe einzelner JSON-Parameter.
  • Nullwerte enthalten:PLACES_COUNT_V2 gibt eine Zeile für jede geo_id zurück, die in der Eingabetabelle angegeben ist. Wenn keine Orte den Kriterien für eine bestimmte Geografie entsprechen, ist place_count 0. So erhalten Sie ein Ergebnis für jedes Eingabegebiet und können sehen, wo keine Orte vorhanden sind.
  • Verlaufs-Snapshots:Fragen Sie Ortszahlen aus einem bestimmten Monat mit dem optionalen Filter snapshot_date ab.

Beispiel: Anzahl der POIs aus einem vorherigen Monat abfragen

In diesem Beispiel wird gezeigt, wie Sie mit dem Parameter snapshot_date die Anzahl der POIs für bestimmte Standorte abfragen. Die Ergebnisse werden nach Orten mit Ladestationen für Elektrofahrzeuge gefiltert, die durch max_ev_max_charge_rate_kw angegeben werden, sowie nach bestimmten regular_opening_hours.

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(
    'geography_radius', 5000,
    'snapshot_date', '2026-01', -- Target snapshot month (YYYY-MM)
    'max_ev_max_charge_rate_kw', 30.0, -- Filter by EV charge rate in kW
    'regular_opening_hours', JSON_OBJECT(
      'monday', [JSON_OBJECT('start_time', '09:00', 'end_time', '12:00')]
    )
  )
);