تابع PLACES_COUNT_PER_TYPE_V2 جدول BigQuery حاوی تعداد مکانها و نمونه «شناسههای مکان» را که براساس نوع مکان برای چندین جغرافیای ورودی تفکیک شدهاند برمیگرداند. این تابع برای پردازش دستهای کارآمد با پذیرش پارامتر جدول ورودی مناطق جغرافیایی طراحی شده است. جغرافیاها را ازطریق جدول ورودی ارائه میدهید و
انواع مکان را بهصورت آرایه مشخص میکنید.
نحو
SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_TYPE_V2`( TABLE input_geographies, target_types, filters )
پارامترها
PROJECT_NAME: نام پروژه Google Cloud شما.LINKED_DATASET_NAME: نام مجموعه داده BigQuery حاوی توابع «اطلاعات آماری جاها» (مثلاًplaces_insights___us).input_geographies: جدول BigQuery حاوی مناطق جغرافیایی برای تجزیهوتحلیل. این جدول باید شامل ستونهای زیر باشد:-
target_types(آرایه<رشته>): آرایهای از رشتههای نوع مکان که میخواهید تعداد آنها را دریافت کنید. مکانها درصورتی شمارش میشوند که با هرکدام از انواع فهرستشده در آرایهtypesخود مطابقت داشته باشند، نه فقط باprimary_type. filters(JSON): شیء JSON حاوی جفتهای کلید-مقدار برای فیلتر کردن بیشتر مکانها. پارامترهای فیلتر را ببینید.
طرح جدول خروجی
تابع PLACES_COUNT_PER_TYPE_V2 جدولی با ستونهای زیر برمیگرداند:
| نام ستون | نوع داده | شرح |
|---|---|---|
geo_id |
STRING | شناسه یکتای جغرافیای ورودی، از جدول input_geographies. |
input_geography |
GEOGRAPHY | شیء GEOGRAPHY اصلی از جدول input_geographies. |
place_type |
STRING | نوع مکان از آرایه target_types که این ردیف نشان میدهد. |
place_count |
INTEGER | تعداد مکانهای منطبق با place_type و فیلترهای دیگر در داخل یا نزدیک منطقه جغرافیایی. |
sample_place_ids |
ARRAY<STRING> | آرایهای از حداکثر ۲۵۰ شناسه مکان که با معیارهای این نوع و جغرافیا مطابقت دارد. |
برونداد حاوی ردیفی برای هر ترکیب geo_id و place_type
مشخصشده در آرایه target_types خواهد بود، حتی اگر تعداد صفر باشد.
روش کار
این تابع هر منطقه جغرافیایی ارائهشده در جدول input_geographies را پردازش میکند.
برای هر منطقه جغرافیایی، مکانهایی را که با هرکدام از انواع فهرستشده در آرایه target_types مطابقت داشته باشند و همچنین همه شرایط موجود در شیء JSON filters را برآورده کنند میشمارد. نتایج بهتفکیک هر geo_id و هر نوع در target_types جمعآوری و تفکیک میشود.
مثال: شمارش انواع مختلف غذاخوریها در شهرستانهای نیویورک
این مثال جدولی از تعداد انواع «رستوران»، «کافه»، و «بار» را در سه شهرستان شهر نیویورک تولید میکند.
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'] ) );
نتیجه جدولی با ۹ ردیف خواهد بود (۳ شهرستان * ۳ نوع). هر ردیف تعداد «رستوران»، «کافه»، یا «بار» را در هر شهرستان نشان میدهد. اگر «شناسههای مکان» نمونه را به عبارت SELECT اضافه کنید، میتوانید آنها را نیز اضافه کنید.

مزایای استفاده از PLACES_COUNT_PER_TYPE_V2
PLACES_COUNT_PER_TYPE_V2 چندین مزیت کلیدی دارد، بهویژه وقتی با تابع قدیمیتر PLACES_COUNT_PER_TYPE مقایسه میشود:
- پردازش دستهای مناطق جغرافیایی: برخلاف
PLACES_COUNT_PER_TYPEکه هر بار یک منطقه جغرافیایی را پردازش میکند،PLACES_COUNT_PER_TYPE_V2TABLEمناطق جغرافیایی ورودی را میپذیرد. این به شما امکان میدهد تا تعدادهای خاص نوع را در چندین جغرافیای مختلف (نقاط، چندضلعیها) در یک پرسمان واحد تحلیل و دریافت کنید، بهجای اینکه چندین فراخوانی تابع انجام دهید. - عملکرد و مقیاسپذیری بهبودیافته: با گرفتن ورودی جدول،
PLACES_COUNT_PER_TYPE_V2میتواند از اتصالهای جغرافیایی-فضایی بهینهشده BigQuery و قابلیتهای پردازش موازی در همه جغرافیای ارائهشده بهطور همزمان بهره ببرد. این امر منجر به بهبود قابلتوجه عملکرد و مقیاسپذیری بهتر هنگام سروکار داشتن با تعداد زیادی از مناطق جغرافیایی میشود. - شامل تعداد صفر: ردیفهایی را با تعداد ۰ برای انواع پیدا نشده در یک منطقه خاص در دسته برمیگرداند، که مجموعه نتایج کاملی را برای همه ترکیبهای نوع-جغرافیا تضمین میکند.
- عکسهای آنی تاریخی: بااستفاده از فیلتر اختیاری
snapshot_date، دادههای تعداد مکان را از یک ماه خاص پُرسمان کنید.
مثال: پرسمان تعداد نقاط موردعلاقه تاریخی براساس نوع با فیلترهای خاص
این مثال نشان میدهد که چگونه میتوان بااستفاده از پارامتر snapshot_date برای بازیابی تعداد در ماه گذشته، تعداد انواع مکانهای خاص، مانند ایستگاههای شارژ خودرو برقی، را پیدا کرد. این فیلترهای اضافی را برای regular_opening_hours اعمال میکند تا فقط مکانهایی را جستجو کند که در روزهای آخر هفته تمام روز باز هستند و شارژ خودرو برقی (حداقل ۱۰ رابط موجود) که توسط 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')] ) ) );