Liczba zapytań o miejsca

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:
    • geo_id (STRING): unikalny identyfikator każdej geografii.
    • geo (GEOGRAPHY): obiekt GEOGRAPHY BigQuery reprezentujący obszar. Może to być punkt, wielokąt lub inny typ geografii.
  • 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.

Wyniki funkcji Places Count w hrabstwach w stanie Nowy Jork.

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:

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')]
    )
  )
);

O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.

Ostatnia aktualizacja: 2026-08-27 UTC.