QGIS फ़ील्ड कैलकुलेटर का उपयोग करके किसी अन्य स्तंभ के आधार पर स्तंभ के कुछ हिस्सों की गणना?


17

मैं एक कॉलम में मूल्यों की गणना करना चाहता हूं, दूसरे कॉलम में मूल्यों के आधार पर। मेरे प्रश्न का वर्णन करने के लिए मैंने नीचे की तस्वीर अपलोड की है। दूसरे कॉलम में ज़िपकोड्स, तीसरी कुल बिक्री शामिल है। मैं जानना चाहूंगा कि प्रति ज़िपकोड की कुल बिक्री क्या है? तो इस मामले में:

कॉलम दो के मूल्य के लिए कॉलम तीन का योग क्या है 1023? आउटपुट तो होना चाहिए 4 (0+1+1+2+0)1024उसी तर्क के बाद तब के लिए योग 11,5 होना चाहिए।

जैसा कि यह काफी बड़ा डेटासेट है जिसे मैं QGIS फ़ील्ड कैलकुलेटर (या किसी अन्य उपकरण) के लिए एक नए फ़ील्ड की गणना करना चाहता हूं, जो ज़िपकोड में कुल बिक्री बताता है। अब तक मैं इसे काम नहीं कर पा रहा था और उम्मीद कर रहा था कि यहाँ कोई मेरी मदद कर सकता है।

जैसा कि आप देख सकते हैं कि मेरे पास कुछ गायब मूल्य हैं, क्या यह गणना में कोई समस्या है? शायद उल्लेख करना अच्छा है कि यह एक तालिका है।

उदाहरण


होना चाहिए 3 (0 + 1 + 1 + 2 + 0) ?? वास्तव में?
user7172

जवाबों:


25

अपडेट: QGIS 2.18 (07/07/2017):

में फील्ड कैलक्यूलेटर , आप उपयोग कर सकते हैं सकल समारोह sumजो आपको एक स्तंभ एक अभिव्यक्ति के आधार पर की मानों का योग करने की अनुमति देता है। आप सारांश के लिए वैकल्पिक रूप से, समूह और फ़िल्टर सुविधाओं को भी कर सकते हैं। आपके क्षेत्र कैलकुलेटर में, आप बस उपयोग कर सकते हैं:

sum( "Sum", "Sales")

जो कि GroupStats प्लगइन का उपयोग करने की विधि के समान है ।



मूल पद: 02/03/2016

GroupStats प्लगइन का उपयोग करें जिसे आपको प्लगइन्स से डाउनलोड करने की आवश्यकता हो सकती है > प्लगइन्स को प्रबंधित और इंस्टॉल करें

आपके द्वारा दिखाए गए कुछ विशेषताओं का उपयोग करके एक उदाहरण परत दी गई है:

परत

तो चलें:

  1. GroupStats प्लगइन चलाएं , संक्षेप के लिए संबंधित क्षेत्रों का चयन करें ( Salesपंक्तियों के लिए; Sumमूल्यों के लिए) और फिर गणना पर क्लिक करें । आपको प्रत्येक बिक्री का योग दिखाते हुए परिणाम देखना चाहिए:

    GroupStats प्लगइन

  2. GroupStats टूलबार से .csv फ़ाइल के रूप में परिणाम सहेजें:

    सीएसवी को निर्यात करें

  3. इंटरफ़ेस में या टूलबार से खींचकर .GS फ़ाइल को वापस QGIS में आयात करें:

    परत> परत जोड़ें> सीमांकित पाठ परत जोड़ें ( ध्यान दें कि मान अर्द्ध-कॉलनों द्वारा अलग किए गए हैं )

  4. एक है में शामिल शेपफ़ाइल और .csv फ़ाइल में, मिलान Salesक्षेत्रों:

    में शामिल

  5. आकार आकृति में अब .csv फ़ाइल से योग मान होना चाहिए:

    परिणाम

आप चाहें Save As...तो शेपफाइल पर विकल्प का उपयोग करने के लिए आगे बढ़ सकते हैं और इसमें शामिल किए गए क्षेत्रों को रखने के लिए इसे नए रूप में सहेज सकते हैं।


यह सहायक होगा यदि इस उत्तर के क्षेत्र कैलकुलेटर घटक में एसक्यूएल लाइनें शामिल हैं जो समूह और / या फ़िल्टर करता है। @ जोसेफ
आईराह

@eyerah - अभिव्यक्ति एक समूह फिल्टर के रूप में sum( "Sum", "Sales")उपयोग करता है "Sales", अगर यह है कि आप क्या मतलब है?
जोसेफ

1
ओह। मैं अब वही देखता हूं। वही तो मेरा मतलब था। धन्यवाद।
22

11

यदि आप बहुत नवीनतम QGIS संस्करण 2.14 में अपडेट होते हैं, तो आप वर्गाकार स्टेटमेंट बनाने वाली आभासी परतों का उपयोग कर सकते हैं:

SELECT "MYTABLE"."MYID", Sum("MYTABLE"."SALES")  AS zip_sale /*:int*/
FROM "MYTABLE"
GROUP BY "MYTABLE"."ZIPCODE"

UI ऐसा दिखता है:

यहाँ छवि विवरण दर्ज करें

आप DB प्रबंधक का उपयोग कर सकते हैं, जहाँ आपके पास sql बटन के पीछे एक क्वेरी बिल्डर है:

यहाँ छवि विवरण दर्ज करें

MYID कॉलम का उपयोग मुख्य तालिका में वापस बिक्री के लिए शामिल होने के लिए किया जा सकता है। सम्मिलित टैब टैबेल गुणों के अंतर्गत है।

के तहत क्यूजीआईएस दृश्य चैंज को देखेंFeature: Virtual layers


6

इसे करने का एक तरीका निम्नलिखित है:

  • विशेषता तालिका में, सुविधा के अनुसार चयन करें। "कॉलम-नेम" = 1023 टाइप करें। 1023 मान वाले सभी फ़ील्ड चयनित हैं।
  • वेक्टर टूल्स पर जाएं -> एनालिसिसिंग टूल्स -> बुनियादी आंकड़े। बिक्री के साथ अपनी परत और कॉलम चुनें। "केवल चयनित मान" चेक-बॉक्स की जाँच करना सुनिश्चित करें। परिणाम विंडो में योग प्रदर्शित किया जाएगा। आपको इसे लिखना होगा;)
  • हर ज़िप-कोड के लिए चरणों को दोहराएं

1
पीएस गुम मान कोई समस्या नहीं है।
मिरॉन

यह एक सरल और अच्छी तरह से काम करने वाला तरीका है। हालांकि यह बहुत समय लेने वाला हो सकता है जब एक बड़े डेटा सेट को संसाधित किया जाए जैसा कि
अम्मर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.