A função PLACES_COUNT_PER_TYPE_V2 retorna uma tabela do BigQuery com contagens de lugares e IDs de lugar de amostra, divididos por tipo de lugar, para várias geografias de entrada. Essa função foi projetada para processamento em lote eficiente, aceitando um parâmetro de tabela de entrada de regiões geográficas. Você fornece as regiões geográficas por uma tabela de entrada e especifica os tipos de lugar como uma matriz.
Sintaxe
SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_TYPE_V2`( TABLE input_geographies, target_types, filters )
Parâmetros
PROJECT_NAME: o nome do seu projeto do Google Cloud;LINKED_DATASET_NAME: o nome do conjunto de dados do BigQuery que contém as funções do Insights de Lugares (por exemplo,places_insights___us).input_geographies: uma tabela do BigQuery com as regiões a serem analisadas. Essa tabela precisa incluir as seguintes colunas:target_types(ARRAY<STRING>): uma matriz de strings de tipo de lugar para as quais você quer receber contagens. Os lugares serão contados se corresponderem a qualquer um dos tipos listados na matriztypes, não apenas aoprimary_type.filters(JSON): um objeto JSON que contém pares de chave-valor para filtragem adicional dos lugares. Consulte Parâmetros de filtro.
Esquema da tabela de saída
A função PLACES_COUNT_PER_TYPE_V2 retorna uma tabela com as seguintes colunas:
| Nome da coluna | Tipo de dados | Descrição |
|---|---|---|
geo_id |
STRING | O identificador exclusivo da região de entrada, da tabela input_geographies. |
input_geography |
GEOGRAPHY | O objeto GEOGRAPHY original da tabela input_geographies. |
place_type |
STRING | O tipo de lugar da matriz target_types que essa linha representa. |
place_count |
INTEGER | O número de lugares que correspondem ao place_type e a outros filtros dentro ou perto da região geográfica. |
sample_place_ids |
ARRAY<STRING> | Uma matriz de até 250 IDs de lugar que correspondem aos critérios desse tipo e região geográfica. |
A saída vai conter uma linha para cada combinação de geo_id e place_type
especificada na matriz target_types, mesmo que a contagem seja zero.
Como funciona
A função processa cada região geográfica fornecida na tabela input_geographies.
Para cada região, ele conta os lugares que correspondem a qualquer um dos tipos listados na matriz target_types e também atendem a todas as condições no objeto JSON filters. Os resultados são agregados e detalhados por cada geo_id e
cada tipo em target_types.
Exemplo: contar diferentes tipos de restaurantes nos condados de Nova York
Este exemplo gera uma tabela de contagens para os tipos "restaurante", "café" e "bar" em três condados da cidade de Nova 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'] ) );
O resultado será uma tabela com 9 linhas (3 condados * 3 tipos). Cada linha vai mostrar a contagem de estabelecimentos do tipo "restaurant", "cafe" ou "bar" em cada condado. Também é possível incluir IDs de lugar de exemplo se você os adicionar à instrução SELECT.

Benefícios de usar PLACES_COUNT_PER_TYPE_V2
O PLACES_COUNT_PER_TYPE_V2 oferece várias vantagens importantes, principalmente em comparação com a função PLACES_COUNT_PER_TYPE mais antiga:
- Processamento em lote de regiões:ao contrário de
PLACES_COUNT_PER_TYPE, que processa uma região por vez,PLACES_COUNT_PER_TYPE_V2aceita umTABLEde regiões de entrada. Isso permite analisar e receber contagens específicas de tipo em várias regiões geográficas (pontos, polígonos) em uma única consulta, em vez de fazer várias chamadas de função. - Melhor desempenho e escalonabilidade:ao receber uma entrada de tabela, o
PLACES_COUNT_PER_TYPE_V2pode aproveitar as mesclagens geoespaciais otimizadas do BigQuery e os recursos de processamento paralelo em todas as regiões fornecidas simultaneamente. Isso resulta em melhorias significativas de performance e melhor escalonabilidade ao lidar com um grande número de regiões geográficas. - Contagens zero incluídas:retorna linhas com contagens zero para tipos não encontrados em uma área específica do lote, garantindo um conjunto de resultados completo para todas as combinações de tipo e região geográfica.
- Snapshots históricos:consulte dados de contagem de lugares de um mês específico usando o filtro opcional
snapshot_date.
Exemplo: consultar contagens históricas de PDIs por tipo com filtros específicos
Este exemplo demonstra como encontrar contagens para tipos de lugares específicos, como eletropostos, usando o parâmetro snapshot_date para recuperar contagens de um mês anterior. Ele aplica filtros adicionais para regular_opening_hours para procurar apenas lugares abertos o dia todo nos fins de semana e a disponibilidade de carregamento de VE (pelo menos 10 conectores disponíveis) 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')] ) ) );