La función PLACES_COUNT_PER_TYPE_V2 devuelve una tabla de BigQuery que contiene
los recuentos de lugares y los IDs de lugar de muestra, desglosados por tipo de lugar, para varias
ubicaciones geográficas de entrada. Esta función está diseñada para un procesamiento por lotes eficiente, ya que acepta un parámetro de tabla de entrada de ubicaciones geográficas. Proporcionas las ubicaciones geográficas a través de una tabla de entrada y especificas los tipos de lugares como un array.
Sintaxis
SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_TYPE_V2`( TABLE input_geographies, target_types, filters )
Parámetros
PROJECT_NAME: Es el nombre de tu proyecto de Google Cloud.LINKED_DATASET_NAME: Es el nombre del conjunto de datos de BigQuery que contiene las funciones de Places Insights (p.ej.,places_insights___us).input_geographies: Es una tabla de BigQuery que contiene las ubicaciones geográficas que se analizarán. Esta tabla debe incluir las siguientes columnas:target_types(ARRAY<STRING>): Es un array de cadenas de tipos de lugares para los que deseas obtener recuentos. Los lugares se contarán si coinciden con cualquiera de los tipos que se indican en su arraytypes, no solo con elprimary_type.filters(JSON): Es un objeto JSON que contiene pares clave-valor para un filtrado adicional de los lugares. Consulta Parámetros de filtro.
Esquema de la tabla de salida
La función PLACES_COUNT_PER_TYPE_V2 devuelve una tabla con las siguientes
columnas:
| Nombre de la columna | Tipo de datos | Descripción |
|---|---|---|
geo_id |
STRING | Es el identificador único de la ubicación geográfica de entrada, de la tabla input_geographies. |
input_geography |
GEOGRAPHY | Es el objeto GEOGRAPHY original de la tabla input_geographies. |
place_type |
STRING | Es el tipo de lugar del array target_types que representa esta fila. |
place_count |
INTEGER | Es la cantidad de lugares que coinciden con el place_type y otros filtros dentro de la ubicación geográfica o cerca de ella. |
sample_place_ids |
ARRAY<STRING> | Es un array de hasta 250 IDs de lugar que coinciden con los criterios de este tipo y ubicación geográfica. |
El resultado contendrá una fila para cada combinación de geo_id y place_type
especificada en el array target_types, incluso si el recuento es cero.
Cómo funciona
La función procesa cada ubicación geográfica proporcionada en la tabla input_geographies.
Para cada ubicación geográfica, cuenta los lugares que coinciden con cualquiera de los tipos que se indican en
el array target_types y que también cumplen con todas las condiciones del objeto JSON
filters. Los resultados se agregan y se desglosan por cada geo_id y
cada tipo en target_types.
Ejemplo: Cuenta los diferentes tipos de restaurantes en los condados de Nueva York
En este ejemplo, se genera una tabla de recuentos para los tipos "restaurant", "cafe" y "bar" en tres condados de la ciudad de Nueva York.
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'] ) );
El resultado será una tabla con 9 filas (3 condados * 3 tipos). Cada fila mostrará el recuento de establecimientos de tipo "restaurant", "cafe" o "bar" dentro de cada condado. También puedes incluir IDs de lugar de muestra si los agregas a tu instrucción SELECT.

Beneficios de usar PLACES_COUNT_PER_TYPE_V2
PLACES_COUNT_PER_TYPE_V2 ofrece varias ventajas clave, en especial cuando
se compara con la función PLACES_COUNT_PER_TYPE anterior:
- Procesamiento por lotes de ubicaciones geográficas: A diferencia de
PLACES_COUNT_PER_TYPE, que procesa una ubicación geográfica a la vez,PLACES_COUNT_PER_TYPE_V2acepta unTABLEde ubicaciones geográficas de entrada. Esto te permite analizar y obtener recuentos específicos de tipos en varias ubicaciones geográficas (puntos, polígonos) en una sola consulta, en lugar de realizar varias llamadas a funciones. - Rendimiento y escalabilidad mejorados: Con una entrada de tabla,
PLACES_COUNT_PER_TYPE_V2puede aprovechar las uniones geoespaciales optimizadas de BigQuery y las capacidades de procesamiento paralelo en todas las ubicaciones geográficas proporcionadas de forma simultánea. Esto genera mejoras significativas en el rendimiento y una mejor escalabilidad cuando se trabaja con una gran cantidad de ubicaciones geográficas. - Incluye recuentos de cero: Devuelve filas con recuentos de 0 para los tipos que no se encuentran en un área específica dentro del lote, lo que garantiza un conjunto de resultados completo para todas las combinaciones de tipo y ubicación geográfica.
- Instantáneas históricas: Consulta los datos de recuento de lugares de un mes específico con el filtro opcional
snapshot_date.
Ejemplo: Consulta los recuentos históricos de lugares de interés por tipo con filtros específicos
En este ejemplo, se muestra cómo encontrar recuentos de tipos de lugares específicos, como estaciones de carga de VE, con el parámetro snapshot_date para recuperar los recuentos de un mes anterior. Aplica filtros adicionales para regular_opening_hours para buscar solo lugares abiertos todo el día los fines de semana y la disponibilidad de carga de VE (al menos 10 conectores disponibles) especificada por 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')] ) ) );