La funzione PLACES_COUNT_PER_TYPE_V2 restituisce una tabella BigQuery contenente i conteggi dei luoghi e gli ID luogo di esempio, suddivisi per tipo di luogo, per più aree geografiche di input. Questa funzione è progettata per un'elaborazione batch efficiente accettando un parametro della tabella di input delle aree geografiche. Fornisci le aree geografiche tramite una tabella di input e specifichi i tipi di luoghi come array.
Sintassi
SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_TYPE_V2`( TABLE input_geographies, target_types, filters )
Parametri
PROJECT_NAME: il nome del tuo progetto Google Cloud.LINKED_DATASET_NAME: il nome del set di dati BigQuery contenente le funzioni di Places Insights (ad es.places_insights___us).input_geographies: una tabella BigQuery contenente le aree geografiche da analizzare. Questa tabella deve includere le seguenti colonne:target_types(ARRAY<STRING>): un array di stringhe di tipi di luoghi per cui vuoi ottenere i conteggi. I luoghi verranno conteggiati se corrispondono a uno dei tipi elencati nel loro arraytypes, non solo aprimary_type.filters(JSON): un oggetto JSON contenente coppie chiave-valore per un ulteriore filtro dei luoghi. Consulta la sezione Parametri di filtro.
Schema della tabella di output
La funzione PLACES_COUNT_PER_TYPE_V2 restituisce una tabella con le seguenti colonne:
| Nome colonna | Tipo di dati | Descrizione |
|---|---|---|
geo_id |
STRING | L'identificatore univoco dell'area geografica di input, dalla tabella input_geographies. |
input_geography |
GEOGRAPHY | L'oggetto GEOGRAPHY originale della tabella input_geographies. |
place_type |
STRING | Il tipo di luogo dell'array target_types rappresentato da questa riga. |
place_count |
INTEGER | Il numero di luoghi corrispondenti a place_type e ad altri filtri all'interno o in prossimità dell'area geografica. |
sample_place_ids |
ARRAY<STRING> | Un array di massimo 250 ID luogo che corrispondono ai criteri per questo tipo e questa area geografica. |
L'output conterrà una riga per ogni combinazione di geo_id e place_type
specificata nell'array target_types, anche se il conteggio è zero.
Come funziona
La funzione elabora ogni area geografica fornita nella tabella input_geographies.
Per ogni area geografica, vengono conteggiati i luoghi che corrispondono a uno dei tipi elencati nell'array target_types e che soddisfano anche tutte le condizioni nell'oggetto JSON filters. I risultati vengono aggregati e suddivisi per ogni geo_id e per ogni tipo in target_types.
Esempio: conta i diversi tipi di ristoranti nelle contee di New York
Questo esempio genera una tabella di conteggi per i tipi "ristorante", "bar" e "pub" in tre contee di New York City.
SELECT geo_id, input_geography, place_type, place_count FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_TYPE_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") ), ['restaurant', 'cafe', 'bar'], -- target_types JSON_OBJECT( 'business_status', ['OPERATIONAL'] ) );
Il risultato sarà una tabella con 9 righe (3 contee * 3 tipi). Ogni riga mostrerà il numero di "ristoranti", "bar" o "pub" all'interno di ogni contea. Puoi anche includere ID luogo di esempio se li aggiungi all'istruzione SELECT.

Vantaggi dell'utilizzo di PLACES_COUNT_PER_TYPE_V2
PLACES_COUNT_PER_TYPE_V2 offre diversi vantaggi principali, in particolare se confrontata con la funzione PLACES_COUNT_PER_TYPE precedente:
- Elaborazione batch delle aree geografiche:a differenza di
PLACES_COUNT_PER_TYPE, che elabora un'area geografica alla volta,PLACES_COUNT_PER_TYPE_V2accetta unTABLEdi aree geografiche di input. In questo modo, puoi analizzare e ottenere conteggi specifici per tipo in numerose aree geografiche (punti, poligoni) in un'unica query, anziché effettuare più chiamate di funzione. - Prestazioni e scalabilità migliorate: accettando un input di tabella,
PLACES_COUNT_PER_TYPE_V2può sfruttare i join geospaziali ottimizzati di BigQuery e le funzionalità di elaborazione parallela in tutte le aree geografiche fornite contemporaneamente. Ciò si traduce in significativi miglioramenti delle prestazioni e in una migliore scalabilità quando si ha a che fare con un numero elevato di aree geografiche. - Conteggi pari a zero inclusi:restituisce righe con conteggi pari a 0 per i tipi non trovati in un'area specifica all'interno del batch, garantendo un set di risultati completo per tutte le combinazioni di tipo e area geografica.
- Istantanee storiche: esegui query sui dati del numero di luoghi di un mese specifico utilizzando il filtro facoltativo
snapshot_date.
Esempio: esegui query sui conteggi storici dei PDI per tipo con filtri specifici
Questo esempio mostra come trovare i conteggi per tipi di luoghi specifici, come le stazioni di ricarica EV, utilizzando il parametro snapshot_date per recuperare i conteggi di un mese passato. Applica filtri aggiuntivi per regular_opening_hours per cercare solo i luoghi aperti tutto il giorno nei fine settimana e la disponibilità di caricabatterie EV (almeno 10 connettori disponibili) specificata da min_ev_charge_connector_count.
SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_TYPE_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") ), ['electric_vehicle_charging_station'], -- target_types array JSON_OBJECT( 'geography_radius', 10000, 'snapshot_date', '2026-01', -- Target snapshot month (YYYY-MM) 'min_ev_charge_connector_count', 10, -- Look for a min amount of chargers 'regular_opening_hours', JSON_OBJECT( 'saturday', [JSON_OBJECT('start_time', '00:00', 'end_time', '23:59')], 'sunday', [JSON_OBJECT('start_time', '00:00', 'end_time', '23:59')] ) ) );