นับ POI ของคำค้นหาตามประเภทสถานที่

ฟังก์ชัน 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 ที่มีภูมิศาสตร์ที่จะวิเคราะห์ ตารางนี้ต้อง มีคอลัมน์ต่อไปนี้
    • geo_id (STRING): ตัวระบุที่ไม่ซ้ำกันสำหรับภูมิศาสตร์แต่ละรายการ
    • geo (GEOGRAPHY): ออบเจ็กต์ GEOGRAPHY ของ BigQuery ที่แสดงพื้นที่ ซึ่งอาจเป็นจุด รูปหลายเหลี่ยม หรือภูมิศาสตร์ประเภทอื่นๆ
  • target_types (ARRAY<STRING>): อาร์เรย์ของสตริงประเภทสถานที่ที่คุณต้องการรับจำนวน ระบบจะนับสถานที่หากตรงกับประเภท ใดก็ได้ ที่ระบุไว้ในอาร์เรย์ 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> อาร์เรย์ของรหัสสถานที่สูงสุด 250 รายการที่ตรงกับเกณฑ์สำหรับประเภทและภูมิศาสตร์นี้

เอาต์พุตจะมีแถวสำหรับชุดค่าผสมของ geo_id และ place_type แต่ละรายการที่ระบุไว้ในอาร์เรย์ target_types แม้ว่าจำนวนจะเป็น 0 ก็ตาม

วิธีการทำงาน

ฟังก์ชันจะประมวลผลภูมิศาสตร์แต่ละรายการที่ระบุไว้ในตาราง input_geographies สำหรับภูมิศาสตร์แต่ละรายการ ฟังก์ชันจะนับสถานที่ที่ตรงกับประเภท ใดก็ได้ ที่ระบุไว้ในอาร์เรย์ target_types และเป็นไปตามเงื่อนไขทั้งหมดในออบเจ็กต์ JSON filters ระบบจะรวมผลลัพธ์และแบ่งตาม geo_id แต่ละรายการและประเภทแต่ละรายการใน target_types

ตัวอย่าง: นับร้านอาหารประเภทต่างๆ ในเขตของนิวยอร์ก

ตัวอย่างนี้จะสร้างตารางจำนวนสำหรับประเภท "ร้านอาหาร" "คาเฟ่" และ "บาร์" ใน 3 เขตของนิวยอร์ก

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

ผลลัพธ์จะเป็นตารางที่มี 9 แถว (3 เขต * 3 ประเภท) แต่ละแถวจะแสดงจำนวนสถานประกอบการประเภท "ร้านอาหาร" "คาเฟ่" หรือ "บาร์" ภายในแต่ละเขต นอกจากนี้ คุณยังใส่รหัสสถานที่ตัวอย่างได้หากเพิ่มลงในคำสั่ง SELECT

ผลลัพธ์สำหรับฟังก์ชัน Places Count Per Type ในเขตของนิวยอร์ก

ประโยชน์ของการใช้ PLACES_COUNT_PER_TYPE_V2

PLACES_COUNT_PER_TYPE_V2 มีข้อดีหลักๆ หลายประการ โดยเฉพาะอย่างยิ่งเมื่อ เทียบกับฟังก์ชัน PLACES_COUNT_PER_TYPE เวอร์ชันเก่า

  • การประมวลผลภูมิศาสตร์แบบกลุ่ม: ฟังก์ชัน PLACES_COUNT_PER_TYPE_V2 ยอมรับ TABLE ของภูมิศาสตร์อินพุต ซึ่งแตกต่างจาก PLACES_COUNT_PER_TYPE ที่ ประมวลผลภูมิศาสตร์ทีละรายการ ฟังก์ชันนี้ช่วยให้คุณวิเคราะห์และรับจำนวนที่เฉพาะเจาะจงตามประเภทในภูมิศาสตร์ต่างๆ (จุด รูปหลายเหลี่ยม) ได้ในการค้นหาครั้งเดียว แทนที่จะเรียกใช้ฟังก์ชันหลายครั้ง
  • ประสิทธิภาพและความสามารถในการปรับขนาดที่ดียิ่งขึ้น: ฟังก์ชัน PLACES_COUNT_PER_TYPE_V2 สามารถใช้ประโยชน์จากการรวมเชิงพื้นที่ที่ได้รับการเพิ่มประสิทธิภาพ ของ BigQuery และความสามารถในการประมวลผลแบบขนานในภูมิศาสตร์ทั้งหมดที่ระบุไว้ พร้อมกันได้ด้วยการรับอินพุตตาราง ซึ่งส่งผลให้ประสิทธิภาพดีขึ้นอย่างมากและความสามารถในการปรับขนาดดีขึ้นเมื่อจัดการกับภูมิศาสตร์จำนวนมาก
  • รวมจำนวนที่เป็น 0: แสดงผลแถวที่มีจำนวนเป็น 0 สำหรับประเภทที่ไม่พบในพื้นที่ที่เฉพาะเจาะจงภายในกลุ่ม เพื่อให้ได้ชุดผลลัพธ์ที่สมบูรณ์สำหรับชุดค่าผสมของประเภทและภูมิศาสตร์ทั้งหมด
  • ข้อมูลสแนปช็อตในอดีต: ค้นหาข้อมูลจำนวนสถานที่จากเดือนที่เฉพาะเจาะจงโดยใช้ตัวกรอง snapshot_date ที่ไม่บังคับ

ตัวอย่าง: ค้นหาจำนวนจุดที่น่าสนใจตามประเภทด้วยตัวกรองที่เฉพาะเจาะจง

ตัวอย่างนี้แสดงวิธีค้นหาจำนวนสำหรับประเภทสถานที่ที่เฉพาะเจาะจง เช่น สถานีชาร์จรถยนต์ไฟฟ้า โดยใช้พารามิเตอร์ snapshot_date เพื่อดึงข้อมูลจำนวนสำหรับเดือนที่ผ่านมา ตัวอย่างนี้ใช้ตัวกรองเพิ่มเติมสำหรับ regular_opening_hours เพื่อค้นหาสถานที่ที่เปิดตลอดทั้งวันในวันหยุดสุดสัปดาห์เท่านั้น และความพร้อมใช้งานในการชาร์จรถยนต์ไฟฟ้า (มีขั้วต่ออย่างน้อย 10 รายการ) ที่ระบุโดย 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')]
    )
  )
);