Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

Sql 2008 क्वेरी समस्या - भूगोल बहुभुज में कौन सा LatLong मौजूद है?

आपके 'संपादन' के संबंध में, अक्सर आपको ऐसा प्रश्न नहीं दिखाई देता है जिसमें "कृपया प्रदान न करें..." शामिल हो। निश्चित रूप से हर छोटी मदद करता है? खासकर जब से आपने वास्तव में हमें यह नहीं दिखाया है कि आप करते हैं STContains . के बारे में जानें या STIntersects (या Filter() उस बात के लिए)...

वैसे भी, मेरे पास ज़िपकोड और स्टोरलोकेशन का एक डेटाबेस था, इसलिए मैंने आपका मिलान करने के लिए टेबल/कॉलम का नाम बदल दिया (मेरे पास तब 6,535 क्राइमलोकैटोइन्स और 3,285 जियोशैप्स हैं)। मुझे लगता है कि आपने अब तक इसका पता लगा लिया है - लेकिन किसी और को यह उपयोगी लग सकता है...

निम्न क्वेरी अपराध स्थानों . की संख्या लौटाती है प्रत्येक GeoShapes.ShapeFile . में

SELECT G.Name, COUNT(CL.Id)
FROM   GeoShapes G
INNER JOIN CrimeLocations CL ON G.ShapeFile.STIntersects(CL.LatLong) = 1
GROUP BY G.Name
ORDER BY 2 DESC

इसमें उम्र लगते हैं (जैसे 20 मिनट) क्योंकि मैंने कोई भू-स्थानिक अनुक्रमणिका स्थापित नहीं की है और मेरी शेपफाइल्स की उच्च बिंदु-गणना है, लेकिन यह सफलतापूर्वक चलती है। अगर मैं आपके सुझाव के अनुसार परिणामों को प्रतिबंधित करना चाहता हूं:

SELECT G.Name, COUNT(CL.Id)
FROM   GeoShapes G
INNER JOIN CrimeLocations CL ON G.ShapeFile.STIntersects(CL.LatLong) = 1
GROUP BY G.Name
HAVING COUNT(CL.Id) = 500

बेशक आप 500 नंबर को हार्डकोड नहीं करना चाहते हैं - इसलिए आप एक COUNT(*) FROM CrimeLocations जोड़ सकते हैं वहाँ सबक्वेरी, या एक अलग क्वेरी से कुल के साथ एक चर।

क्या यह काफी जटिल है?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. वास्तविक दुनिया की समस्याओं को हल करने के लिए सरल SQL सर्वर कार्य

  2. दो तिथियों के बीच सभी दिनांक डेटा दिखाएं; यदि किसी विशेष तिथि के लिए कोई पंक्ति मौजूद नहीं है तो सभी कॉलम में शून्य दिखाएं

  3. SQL सर्वर 2019 में स्केलर UDF इनलाइनिंग

  4. स्ट्रिंग के हिस्से को क्रॉस रेफ अस्थायी तालिका से पूंजीकृत समकक्ष के साथ बदलें - tsql

  5. SCHEMA_NAME () SQL सर्वर में कैसे काम करता है