Funkcja PLACES_COUNT_V2 zwraca tabelę BigQuery zawierającą liczbę miejsc i przykładowe identyfikatory miejsc w przypadku wielu geografii wejściowych na podstawie określonych filtrów.
Ta funkcja jest przeznaczona do wydajnego przetwarzania wsadowego. Przyjmuje parametr tabeli wejściowej geografii, co pozwala analizować wiele obszarów zainteresowania w jednym zapytaniu, podając geografię w tabeli wejściowej.
Składnia
SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_V2`( TABLE input_geographies, filters )
Parametry
PROJECT_NAME: nazwa Twojego projektu Google Cloud.LINKED_DATASET_NAME: nazwa zbioru danych BigQuery zawierającego funkcje Statystyk miejsc (np.places_insights___us).input_geographies: tabela BigQuery zawierająca geografię do analizy. Ta tabela musi zawierać te kolumny:filters(JSON): obiekt JSON zawierający pary klucz-wartość do filtrowania miejsc. Zobacz Parametry filtra.
Schemat tabeli wyjściowej
Funkcja PLACES_COUNT_V2 zwraca tabelę z tymi kolumnami:
| Nazwa kolumny | Typ danych | Opis |
|---|---|---|
geo_id |
STRING | Unikalny identyfikator geografii wejściowej z tabeli input_geographies. |
input_geography |
GEOGRAPHY | Oryginalny obiekt GEOGRAPHY z tabeli input_geographies. |
place_count |
INTEGER | Łączna liczba miejsc pasujących do filtrów. |
sample_place_ids |
ARRAY<STRING> | Tablica zawierająca maksymalnie 250 identyfikatorów miejsc, które spełniają kryteria. |
Jak to działa
Funkcja przetwarza każdy wiersz w tabeli input_geographies. W przypadku każdego obiektu geo
zlicza liczbę miejsc, które znajdują się w obrębie geografii (lub w obrębie
obiektu geography_radius jeśli geo jest punktem, a promień jest określony w
obiekcie filters). Liczba obejmuje tylko te miejsca, które spełniają wszystkie
warunki zdefiniowane w obiekcie JSON filters.
Przykład: obliczanie liczby restauracji w 3 hrabstwach Nowego Jorku
Ten przykład generuje tabelę z liczbą działających restauracji w 3 hrabstwach Nowego Jorku.
W tym przykładzie używamy United States Census Bureau
Data
BigQuery publicznego zbioru danych, aby uzyskać
granice 3 hrabstw w Nowym Jorku: Queens, Kings i New
York. Granice każdego hrabstwa znajdują się w kolumnie county_geom.
Najpierw tworzymy tabelę tymczasową new_york_counties, aby przechowywać geo_id i uproszczoną GEOGRAPHY dla każdego hrabstwa.
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'] ) );
Tabela odpowiedzi będzie zawierać 3 wiersze – po jednym na każde hrabstwo. Będą w nich widoczne geo_id, input_geography, place_count i sample_place_ids działających restauracji.

Zalety korzystania z PLACES_COUNT_V2
PLACES_COUNT_V2 ma znaczące zalety w porównaniu z funkcjami PLACES_COUNT i
PLACES_COUNT_PER_GEO:
- Przetwarzanie zbiorcze: możesz wydajnie analizować tysiące niestandardowych geografii w jednym zapytaniu, podając wiele danych wejściowych geografii w tabeli.
- Wydajność: wykorzystuje zoptymalizowane łączenia geoprzestrzenne BigQuery , co zapewnia znaczną poprawę szybkości w przypadku dużych zbiorów danych.
- Skalowalność: funkcja została zaprojektowana do obsługi dużej liczby geografii wejściowych bez ograniczeń rozmiaru pojedynczego parametru JSON.
- Uwzględnianie zerowych wartości: funkcja
PLACES_COUNT_V2zwraca wiersz dla każdegogeo_idpodanego w tabeli wejściowej. Jeśli żadne miejsca nie spełniają kryteriów dla danej geografii, wartośćplace_countbędzie równa 0. Dzięki temu uzyskasz wynik dla każdego obszaru wejściowego, co pozwoli Ci sprawdzić, gdzie nie ma miejsc. - Migawki historyczne: możesz wysyłać zapytania o dane dotyczące liczby miejsc z określonego miesiąca za pomocą opcjonalnego filtra
snapshot_date.
Przykład: wysyłanie zapytań o liczbę punktów POI z poprzedniego miesiąca
Ten przykład pokazuje, jak wysyłać zapytania o historyczną liczbę punktów POI w określonych lokalizacjach za pomocą parametru snapshot_date. Filtruje wyniki dotyczące miejsc z punktami ładowania pojazdów elektrycznych określonymi przez max_ev_max_charge_rate_kw oraz określonymi 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')] ) ) );