La función PLACES_COUNT_PER_TYPE_V2 muestra una tabla de BigQuery que contiene recuentos de lugares y IDs de lugares de muestra, desglosados por tipo de lugar, para varias ubicaciones geográficas de entrada. Esta función está diseñada para el 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 tipo de lugar para las que deseas obtener recuentos. Los lugares se contarán si coinciden con cualquiera de los tipos que se enumeran en su arraytypes, no solo con elprimary_type.filters(JSON): Es un objeto JSON que contiene pares clave-valor para filtrar aún más los lugares. Consulta Parámetros de filtro.
Esquema de la tabla de salida
La función PLACES_COUNT_PER_TYPE_V2 muestra 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 o cerca de la ubicación geográfica. |
sample_place_ids |
ARRAY<STRING> | Es un array de hasta 250 IDs de lugares 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 enumeran en el array target_types y que también cumplen con todas las condiciones del objeto JSON filters. Los resultados se agregan y desglosan por cada geo_id y cada tipo en target_types.
Ejemplo: Cuenta 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 "restaurant", "cafe" o "bar" dentro de cada condado. También puedes incluir IDs de lugares 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 particular 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_TYPEque procesa una ubicación geográfica a la vez,PLACES_COUNT_PER_TYPE_V2acepta unaTABLEde 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: Al tomar 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 trata de una gran cantidad de ubicaciones geográficas. - Se incluyen recuentos cero: Muestra filas con recuentos 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 PDI 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 vehículos eléctricos, con el parámetro snapshot_date para recuperar recuentos de un mes anterior. Aplica filtros adicionales para regular_opening_hours para buscar solo los lugares abiertos todo el día los fines de semana y la disponibilidad de carga de vehículos eléctricos (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')] ) ) );