จำนวนจุดที่น่าสนใจในคำค้นหา

ฟังก์ชัน PLACES_COUNT_V2 จะแสดงผลตาราง BigQuery ที่มีจำนวนสถานที่และรหัสสถานที่ตัวอย่างสำหรับภูมิศาสตร์อินพุตหลายรายการตามตัวกรองที่ระบุ ฟังก์ชันนี้ออกแบบมาเพื่อการประมวลผลแบบกลุ่มที่มีประสิทธิภาพโดยการยอมรับ an input table parameter of geographies ซึ่งช่วยให้คุณวิเคราะห์พื้นที่ที่สนใจหลายแห่งในการค้นหาครั้งเดียวได้ โดยการระบุภูมิศาสตร์ผ่านตารางอินพุต

ไวยากรณ์

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

พารามิเตอร์

  • PROJECT_NAME: ชื่อโปรเจ็กต์ Google Cloud
  • LINKED_DATASET_NAME: ชื่อชุดข้อมูล BigQuery ที่มีฟังก์ชันข้อมูลเชิงลึกเกี่ยวกับสถานที่ (เช่น places_insights___us)
  • input_geographies: ตาราง BigQuery ที่มีภูมิศาสตร์ที่จะวิเคราะห์ ตารางนี้ต้อง มีคอลัมน์ต่อไปนี้
    • geo_id (STRING): ตัวระบุที่ไม่ซ้ำกันสำหรับภูมิศาสตร์แต่ละรายการ
    • geo (GEOGRAPHY): ออบเจ็กต์ GEOGRAPHY ของ BigQuery ที่แสดงพื้นที่ ซึ่งอาจเป็นจุด รูปหลายเหลี่ยม หรือภูมิศาสตร์ประเภทอื่นๆ
  • filters (JSON): ออบเจ็กต์ JSON ที่มีคู่คีย์-ค่าสำหรับกรองสถานที่ ดูพารามิเตอร์ตัวกรอง

สคีมาของตารางเอาต์พุต

ฟังก์ชัน PLACES_COUNT_V2 จะแสดงผลตารางที่มีคอลัมน์ต่อไปนี้

ชื่อคอลัมน์ ประเภทข้อมูล คำอธิบาย
geo_id STRING ตัวระบุที่ไม่ซ้ำกันสำหรับภูมิศาสตร์อินพุตจากตาราง input_geographies
input_geography GEOGRAPHY ออบเจ็กต์ GEOGRAPHY เดิมจากตาราง input_geographies
place_count INTEGER จำนวนสถานที่ทั้งหมดที่ตรงกับตัวกรอง
sample_place_ids ARRAY<STRING> อาร์เรย์ที่มีรหัสสถานที่สูงสุด 250 รายการที่ตรงกับเกณฑ์

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

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

ตัวอย่าง: คำนวณจำนวนร้านอาหารใน 3 เขตของนิวยอร์กซิตี้

ตัวอย่างนี้จะสร้างตารางที่มีจำนวนร้านอาหารที่เปิดให้บริการใน 3 เขตของนิวยอร์กซิตี้

ตัวอย่างนี้ใช้ชุดข้อมูลสาธารณะ BigQuery ของ สำนักงานสำรวจสำมะโนประชากรสหรัฐอเมริกา เพื่อรับขอบเขตของ 3 เขตในนิวยอร์กซิตี้ ได้แก่ "ควีนส์" "บรูคลิน" และ "แมนฮัตตัน" ขอบเขตของแต่ละเขตจะอยู่ในคอลัมน์ county_geom

ขั้นแรกเราจะสร้างตารางชั่วคราว new_york_counties เพื่อเก็บ geo_id และ GEOGRAPHY ที่ทำให้ง่ายขึ้นสำหรับแต่ละเขต

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

ตารางการตอบกลับจะมี 3 แถว แถวละ 1 เขต โดยจะแสดง geo_id, input_geography, place_count และ sample_place_ids ของร้านอาหารที่เปิดให้บริการ

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

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

PLACES_COUNT_V2 มีข้อดีที่สำคัญกว่าทั้ง PLACES_COUNT และ PLACES_COUNT_PER_GEO ดังนี้

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

ตัวอย่าง: ค้นหาจำนวนจุดที่น่าสนใจจากเดือนก่อนหน้า

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