PLACES_COUNT ফাংশনটি নির্দিষ্ট অনুসন্ধান এলাকা এবং অনুসন্ধান ফিল্টারের উপর ভিত্তি করে স্থানের একক গণনা মান প্রদান করে। আপনাকে PLACES_COUNT ফাংশনে অনুসন্ধান এলাকা নির্দিষ্ট করতে হবে এবং ঐচ্ছিকভাবে অতিরিক্ত ফিল্টার প্যারামিটার যেমন স্থানের ধরণ, অপারেটিং স্থিতি, মূল্য স্তর এবং আরও অনেক কিছু নির্দিষ্ট করতে পারেন।
যেহেতু PLACES_COUNT ফাংশনটি একটি একক মান প্রদান করে, তাই এটিকে একটি SELECT ধারা ব্যবহার করে কল করুন।
ইনপুট পরামিতি:
প্রয়োজনীয় :
geographyফিল্টার প্যারামিটার যা অনুসন্ধান এলাকা নির্দিষ্ট করে।geographyপ্যারামিটারটি BigQueryGEOGRAPHYডেটা টাইপ দ্বারা সংজ্ঞায়িত একটি মান নেয়, যা পয়েন্ট, লাইনস্ট্রিং এবং বহুভুজ সমর্থন করে।ঐচ্ছিক : আপনার অনুসন্ধানকে পরিমার্জিত করার জন্য অতিরিক্ত ফিল্টার প্যারামিটার।
রিটার্ন:
-
INT64হিসেবে একটি এককcountমান।
-
উদাহরণ: একটি অনুসন্ধান ব্যাসার্ধে স্থানের সংখ্যা গণনা করুন
সবচেয়ে সহজ PLACES_COUNT ফাংশন কলটি একটি ভৌগোলিক এলাকার সমস্ত স্থানের একক গণনা প্রদান করে। এই উদাহরণে, আপনি এম্পায়ার স্টেট ভবনের 1000 মিটারের মধ্যে সমস্ত কার্যকরী স্থানের গণনা প্রদান করেন।
এই উদাহরণে BigQuery ST_GEOGPOINT ফাংশন ব্যবহার করে একটি বিন্দু থেকে একটি GEOGRAPHY মান ফেরত দেওয়া হয়।
SELECT `PROJECT_NAME.places_insights___us.PLACES_COUNT`( JSON_OBJECT( 'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building 'geography_radius', 1000 -- Radius in meters ) ) as count;
উত্তরটিতে একটি মাত্র গণনা রয়েছে:

একটি সাধারণ কল অনুসন্ধান এলাকায় ফিল্টার প্রয়োগ করে। পরবর্তী উদাহরণে অনুসন্ধান সীমিত করার জন্য ফিল্টার ব্যবহার করা হয়েছে শুধুমাত্র নিম্নলিখিত সংখ্যাগুলি ফেরত দেওয়ার জন্য:
- সর্বনিম্ন ৩ রেটিং সহ
restaurantধরণের স্থান - সস্তা বা মাঝারি মূল্য স্তর
- বর্তমানে চালু আছে
- কুকুর রাখার অনুমতি আছে
SELECT `PROJECT_NAME.places_insights___us.PLACES_COUNT`( JSON_OBJECT( 'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building 'geography_radius', 1000, -- Radius in meters 'types', ["restaurant"], 'min_rating', 3, 'price_level', ['PRICE_LEVEL_INEXPENSIVE', 'PRICE_LEVEL_MODERATE'], 'business_status', ['OPERATIONAL'], 'allows_dogs', TRUE ) ) as count;
ফিল্টার করা প্রতিক্রিয়া:

মনে রাখবেন যে প্লেস ডেটাসেট কোয়েরিগুলি ন্যূনতম ৫ গণনার থ্রেশহোল্ড প্রয়োগ করে। প্লেস কাউন্ট ফাংশনের একটি সুবিধা হল যে তারা ০ সহ যেকোনো গণনা ফেরত দিতে পারে। উদাহরণস্বরূপ, নিম্নলিখিত কলটি ১ গণনা ফেরত দেয়:
SELECT `PROJECT_NAME.places_insights___us.PLACES_COUNT`( JSON_OBJECT( 'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building 'geography_radius', 500, -- Radius in meters 'types', ["restaurant"], 'min_rating', 4.0, 'free_parking_lot', TRUE, 'good_for_watching_sports', TRUE ) ) as count;
উদাহরণ: বহুভুজ ব্যবহার করে রেস্তোরাঁর সংখ্যা গণনা করুন
অনুসন্ধান এলাকা নির্দিষ্ট করার জন্য আপনি একটি বহুভুজ ব্যবহার করতে পারেন। বহুভুজ ব্যবহার করার সময়, বহুভুজের বিন্দুগুলিকে একটি বদ্ধ লুপ নির্ধারণ করতে হবে যেখানে বহুভুজের প্রথম বিন্দুটি শেষ বিন্দুর মতোই হবে।
এই উদাহরণে বহুভুজ থেকে GEOGRAPHY মান ফেরত দিতে BigQuery ST_GEOGFROMTEXT ফাংশন ব্যবহার করা হয়েছে।
DECLARE geo GEOGRAPHY; SET geo = ST_GEOGFROMTEXT('''POLYGON((-73.985708 40.75773,-73.993324 40.750298, -73.9857 40.7484,-73.9785 40.7575, -73.985708 40.75773))'''); -- NYC viewport SELECT `PROJECT_NAME.places_insights___us.PLACES_COUNT`( JSON_OBJECT( 'geography',geo, -- viewport 'types', ["restaurant"], 'min_rating', 1.0, 'max_rating', 4.5, 'min_user_rating_count', 1, 'max_user_rating_count', 10000, 'price_level', ['PRICE_LEVEL_INEXPENSIVE', 'PRICE_LEVEL_MODERATE'], 'business_status', ['OPERATIONAL'], 'allows_dogs', TRUE ) ) as count;
ভিউপোর্টের প্রতিক্রিয়া:

উদাহরণ: একটি লাইন ব্যবহার করে রেস্তোরাঁর সংখ্যা গণনা করুন
পরবর্তী উদাহরণে, আপনি লাইনের চারপাশে ১০০ মিটার অনুসন্ধান ব্যাসার্ধ সহ সংযুক্ত বিন্দুর একটি লাইন ব্যবহার করে অনুসন্ধান এলাকাটি সংজ্ঞায়িত করবেন। লাইনটি Routes API দ্বারা গণনা করা একটি ভ্রমণ রুটের অনুরূপ। রুটটি একটি যানবাহন, একটি সাইকেল, অথবা একজন পথচারীর জন্য হতে পারে:
DECLARE geo GEOGRAPHY; SET geo = ST_GEOGFROMTEXT('LINESTRING(-73.98903537033028 40.73655649223003,-73.93580216278471 40.80955538843361)'); -- NYC line SELECT `PROJECT_NAME.places_insights___us.PLACES_COUNT`( JSON_OBJECT( 'geography',geo, -- line 'geography_radius', 100, -- Radius around line 'types', ["restaurant"], 'min_rating', 1.0, 'max_rating', 4.5, 'min_user_rating_count', 1, 'max_user_rating_count', 10000, 'price_level', ['PRICE_LEVEL_INEXPENSIVE', 'PRICE_LEVEL_MODERATE'], 'business_status', ['OPERATIONAL'], 'allows_dogs', TRUE ) ) as count;
লাইনটির উত্তর:

উদাহরণ: একাধিক কলের ফলাফল একত্রিত করুন
আপনি একাধিক কলের ফলাফল PLACES_COUNT ফাংশনে একত্রিত করতে পারেন। উদাহরণস্বরূপ, আপনি একটি নির্দিষ্ট এলাকার মধ্যে নিম্নলিখিত মূল্য স্তরের জন্য রেস্তোরাঁর সংখ্যা দেখানো একটি একক ফলাফল চান:
-
PRICE_LEVEL_INEXPENSIVE -
PRICE_LEVEL_MODERATE -
PRICE_LEVEL_EXPENSIVE -
PRICE_LEVEL_VERY_EXPENSIVE"
এই উদাহরণে, আপনি প্রতিটি মূল্য স্তরের জন্য PLACES_COUNT ফাংশন কল করার জন্য একটি লুপ তৈরি করেন এবং প্রতিটি কলের ফলাফল একটি অস্থায়ী টেবিলে সন্নিবেশ করান। তারপর আপনি ফলাফল প্রদর্শনের জন্য অস্থায়ী টেবিলটি জিজ্ঞাসা করেন:
-- Create a temp table to hold the results. CREATE TEMP TABLE results (type STRING, count INT64); -- Create a loop that calls PLACES_COUNT for each price level. FOR types IN (SELECT type FROM UNNEST(["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE", "PRICE_LEVEL_EXPENSIVE", "PRICE_LEVEL_VERY_EXPENSIVE"]) as type) DO INSERT INTO results VALUES (types.type, `PROJECT_NAME.places_insights___us.PLACES_COUNT`( JSON_OBJECT( 'types', ["restaurant"], 'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building 'geography_radius', 1000, -- Radius in meters 'business_status', ['OPERATIONAL'], 'price_level', [types.type] ))); END FOR; -- Query the table of results. SELECT * FROM results;
সম্মিলিত প্রতিক্রিয়া:

আরেকটি বিকল্প হল UNION ALL কমান্ড ব্যবহার করে একাধিক SELECT স্টেটমেন্টের ফলাফল একত্রিত করা। নিম্নলিখিত উদাহরণটি পূর্ববর্তী উদাহরণের মতো একই ফলাফল দেখায়:
SELECT "PRICE_LEVEL_INEXPENSIVE" as price_level, `PROJECT_NAME.places_insights___us.PLACES_COUNT`( JSON_OBJECT( 'types', ["restaurant"], 'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building 'geography_radius', 1000, -- Radius in meters 'business_status', ['OPERATIONAL'], 'price_level', ['PRICE_LEVEL_INEXPENSIVE'] ) ) as count UNION ALL SELECT "PRICE_LEVEL_MODERATE" as price_level, `PROJECT_NAME.places_insights___us.PLACES_COUNT`( JSON_OBJECT( 'types', ["restaurant"], 'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building 'geography_radius', 1000, -- Radius in meters 'business_status', ['OPERATIONAL'], 'price_level', ['PRICE_LEVEL_MODERATE'] ) ) as count UNION ALL SELECT "PRICE_LEVEL_EXPENSIVE" as price_level, `PROJECT_NAME.places_insights___us.PLACES_COUNT`( JSON_OBJECT( 'types', ["restaurant"], 'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building 'geography_radius', 1000, -- Radius in meters 'business_status', ['OPERATIONAL'], 'price_level', ['PRICE_LEVEL_EXPENSIVE'] ) ) as count UNION ALL SELECT "PRICE_LEVEL_VERY_EXPENSIVE" as price_level, `PROJECT_NAME.places_insights___us.PLACES_COUNT`( JSON_OBJECT( 'types', ["restaurant"], 'geography', ST_GEOGPOINT(-73.9857, 40.7484), -- Empire State Building 'geography_radius', 1000, -- Radius in meters 'business_status', ['OPERATIONAL'], 'price_level', ['PRICE_LEVEL_VERY_EXPENSIVE'] ) ) as count