বহুগুণে STIntersects ব্যবহার করে পয়েন্ট গণনা করার জন্য ক্ষেত্র আপডেট করা হচ্ছে?


11

আমার একটি পয়েন্ট স্তর রয়েছে (dbo.ptLayer)

  • প্রায় 1 এম পয়েন্ট
  • স্থানিক জ্যামিতির ধরণ (dbo.ptLayer.geom)
  • এখনও কোনও স্থানিক সূচক নয়, তবে একবারে ডেটা সংগ্রহের কাজ শেষ করে একটি তৈরি করবে।

আমার একটি বহুভুজ স্তর রয়েছে (dbo.polygonLayer)

  • প্রায় 500 বহুভুজ।
  • স্থানিক জ্যামিতির ধরণ (dbo.polygonLayer.geom)

উভয়ের আইডি নামক ক্ষেত্র রয়েছে।

প্রতিটি বহুভুজের মধ্যে পয়েন্টের মোট সংখ্যার একটি গণনা সহ আমি কীভাবে বহুভুজ স্তরটিতে একটি খালি পূর্ণসংখ্যার ক্ষেত্রটি তৈরি করব?

যদিও আমার অন্যান্য সফ্টওয়্যার পণ্যগুলিতে অ্যাক্সেস রয়েছে, এসকিউএল এবং এসকিউএল সার্ভারের মধ্যে খাঁটিভাবে কী করা যায় তা জানতে আগ্রহী am

আমি বিশ্বাস করি যে আমার STIntersects ব্যবহার করা উচিত তবে এই ক্ষেত্রটি জনসাধারণের জন্য আপডেট করার সর্বোত্তম উপায় কোনটি তা জানতে চাই।

উত্তর:


17

এটি আপনার যা প্রয়োজন তা করা উচিত:

একটি নির্বাচন প্রশ্ন:

SELECT polygons.id, Count(*) 
FROM points
JOIN polygons
ON polygons.ogr_geometry.STContains(points.ogr_geometry) = 1
GROUP BY polygons.id

একটি আপডেট সহ:

UPDATE polygons
SET [countcolumn] = counts.pointcount
FROM polygons
JOIN
(
 SELECT polygons.id, Count(*) 
 FROM points
 JOIN polygons
 ON polygons.ogr_geometry.STContains(points.ogr_geometry) = 1
 GROUP BY polygons.id
) counts ON polygons.id = counts.id

এটি আমার কোনও ডেটাসেটে সেই ক্যোয়ারী চালানোর ফলাফল

এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.