Sorgu ÖY sayıları

PLACES_COUNT_V2 işlevi, belirtilen filtrelere göre birden fazla giriş coğrafyası için yer sayılarını ve örnek yer kimliklerini içeren bir BigQuery tablosu döndürür. Bu işlev, coğrafi konumların giriş tablosu parametresini kabul ederek verimli toplu işleme için tasarlanmıştır. Bu sayede, coğrafi konumları bir giriş tablosu aracılığıyla sağlayarak tek bir sorguda birçok ilgi alanını analiz edebilirsiniz.

Söz dizimi

SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_V2`(
  TABLE input_geographies,
  filters
)

Parametreler

  • PROJECT_NAME: Google Cloud projenizin adı.
  • LINKED_DATASET_NAME: Places Insights işlevlerini içeren BigQuery veri kümesinin adı (ör. places_insights___us).
  • input_geographies: Analiz edilecek coğrafi konumları içeren bir BigQuery tablosu. Bu tablo aşağıdaki sütunları içermelidir:
    • geo_id (STRING): Her coğrafi bölge için benzersiz bir tanımlayıcı.
    • geo (GEOGRAPHY): Alanı temsil eden BigQuery GEOGRAPHY nesnesi. Bu bir nokta, poligon veya başka bir coğrafya türü olabilir.
  • filters (JSON): Yerleri filtrelemek için anahtar/değer çiftleri içeren bir JSON nesnesi. Filtre Parametreleri bölümüne bakın.

Çıkış Tablosu Şeması

PLACES_COUNT_V2 işlevi, aşağıdaki sütunları içeren bir tablo döndürür:

Sütun Adı Veri Türü Açıklama
geo_id STRING input_geographies tablosundaki giriş coğrafyası için benzersiz tanımlayıcı.
input_geography GEOGRAPHY input_geographies tablosundaki orijinal GEOGRAPHY nesnesi.
place_count INTEGER Filtrelerle eşleşen yerlerin toplam sayısı.
sample_place_ids ARRAY<STRING> Ölçütlere uyan en fazla 250 yer kimliğinden oluşan bir dizi.

İşleyiş şekli

İşlev, input_geographies tablosundaki her satırı işler. Her geo nesnesi için coğrafi bölgeye (veya geo bir nokta ise ve yarıçap filters içinde belirtilmişse geography_radius içine) giren yerlerin sayısı hesaplanır. Sayım yalnızca filters JSON nesnesinde tanımlanan tüm koşullara uyan yerleri içerir.

Örnek: New York City'nin üç ilçesindeki restoran sayısını hesaplama

Bu örnek, New York City'nin üç ilçesindeki faal restoranların sayısını içeren bir tablo oluşturur.

Bu örnekte, New York City'deki üç ilçenin sınırlarını ("Queens", "Kings" ve "New York") almak için United States Census Bureau Data BigQuery herkese açık veri kümesi kullanılır. Her ilçenin sınırları county_geom sütununda yer alır.

Öncelikle her ilçe için geo_id ve basitleştirilmiş GEOGRAPHY değerlerini tutacak geçici bir tablo new_york_counties oluştururuz.

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

Yanıt tablosunda her ilçe için bir satır olmak üzere üç satır bulunur. Bu satırlarda, faaliyetteki restoranların geo_id, input_geography, place_count ve sample_place_ids bilgileri gösterilir.

New York ilçelerindeki Places Count işlevinin sonuçları.

PLACES_COUNT_V2 kullanmanın avantajları

PLACES_COUNT_V2, hem PLACES_COUNT hem de PLACES_COUNT_PER_GEO'e kıyasla önemli avantajlar sunar:

  • Toplu İşleme: Bir tabloda birden fazla coğrafi bölge girişi sağlayarak tek bir sorguda binlerce özel coğrafi bölgeyi verimli bir şekilde analiz edin.
  • Performans: Büyük veri kümeleri için önemli hız avantajları sunan BigQuery'nin optimize edilmiş coğrafi birleştirme işlemlerinden yararlanır.
  • Ölçeklenebilirlik: Tek bir JSON parametre boyutunun sınırlamaları olmadan çok sayıda giriş coğrafyasını işlemek için tasarlanmıştır.
  • Sıfır Sayıları Dahil Edildi: PLACES_COUNT_V2, giriş tablosunda sağlanan her geo_id için bir satır döndürür. Belirli bir coğrafi bölgenin ölçütleriyle eşleşen yer yoksa place_count değeri 0 olur. Bu sayede her giriş alanı için bir sonuç elde edersiniz ve yerlerin nerede olmadığını görebilirsiniz.
  • Geçmiş anlık görüntüler: İsteğe bağlı snapshot_date filtresini kullanarak belirli bir aya ait yer sayısı verilerini sorgulayın.

Örnek: Önceki bir aya ait ÖY sayılarını sorgulama

Bu örnekte, snapshot_date parametresi kullanılarak belirli konumlar için geçmiş ÖY sayılarının nasıl sorgulanacağı gösterilmektedir. max_ev_max_charge_rate_kw tarafından belirtilen elektrikli araç şarjı olanaklarına sahip yerlerin sonuçlarını belirli regular_opening_hours ile birlikte filtreler.

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