QGIS Alan Hesaplayıcı kullanarak başka bir sütuna göre sütun bölümlerinin toplamı hesaplanıyor mu?


17

Başka bir sütundaki değerlere dayanarak, bir sütundaki değerlerin toplamını hesaplamak istiyorum. Sorumu açıklamak için aşağıdaki resmi yükledim. İkinci sütun, üçüncü toplam satış olan posta kodlarından oluşur. Posta kodu başına toplam satışların ne olduğunu bilmek istiyorum? Yani bu durumda:

İkinci sütunun değeri için üçüncü sütunun toplamı nedir 1023? Çıktı sonra olmalıdır 4 (0+1+1+2+0). O 1024zamanki toplamı aynı mantığı izleyerek 11,5 olmalıdır.

Bu oldukça büyük bir veri kümesi olduğundan, QGIS alan hesap makinesinin (veya başka bir aracın) posta kodundaki toplam satışları belirten yeni bir alan hesaplamasını istiyorum. Şimdiye kadar çalışmasını sağlayamıyorum ve burada birinin bana yardımcı olabileceğini umuyordum.

Gördüğünüz gibi eksik değerlerim var, bu hesaplamada bir sorun mu? Belki de bahsetmek iyi bir tablo olduğu.

Misal


3 olmalı (0 + 1 + 1 + 2 + 0) ?? Gerçekten mi?
user7172

Yanıtlar:


25

Güncelleme: QGIS 2.18 (07/07/2017):

Gelen Alan Hesaplayıcı , kullanabilirsiniz Agrega fonksiyonu sumbir ifadesine dayalı bir sütun değerlerini toplanmasına izin verir. Ayrıca, isteğe bağlı olarak, toplama için özellikleri gruplayabilir ve filtreleyebilirsiniz. Yani alan hesap makinenizde şunları kullanabilirsiniz:

sum( "Sum", "Sales")

Hangi GroupStats eklentisini kullanan yöntemle tam olarak aynı şeyi yapar .



Orijinal mesaj: 02/03/2016

Eklentiler> Eklentileri Yönet ve Yükle öğelerinden indirmeniz gerekebilecek GroupStats eklentisini kullanın .

Aşağıda, gösterdiğiniz bazı özellikleri kullanan örnek bir katman verilmiştir:

Katman

Öyleyse:

  1. Run GroupStats , eklenti (toplanmasıyla için ilgili alanları seçmek Salessatırlar için; Sumdeğerler için) ve ardından hesaplayın . Her satışın toplamını gösteren sonuçları görmelisiniz:

    GroupStats eklentisi

  2. Sonuçları GroupStats araç çubuğundan .csv dosyası olarak kaydedin:

    CSV dosyasına aktar

  3. .Csv dosyasını arabirime sürükleyerek veya araç çubuğundan QGIS'e geri alın:

    Katman> Katman Ekle> Sınırlandırılmış Metin Katmanı Ekle ( değerlerin noktalı virgülle ayrıldığını unutmayın )

  4. Do bir Katıldı eşleşen shape ve .csv dosyası ile Salesalanları:

    Katıldı

  5. Şekil dosyası şimdi .csv dosyasındaki toplam değerleri içermelidir:

    Sonuçlar

İsterseniz Save As...şekil dosyasındaki seçeneği kullanmaya devam edebilir ve birleştirilmiş alanları korumak için yeni bir seçenek olarak kaydedebilirsiniz.


Bu cevabın alan hesaplayıcı bileşeninin, gruplayan ve / veya filtreleyen SQL satırlarını içermesi yararlı olacaktır. @Joseph
eyerah

@eyerah - İfade ne demekse , grup filtresi olarak sum( "Sum", "Sales")kullanır "Sales"?
Joseph

1
Ah. Bunu şimdi görüyorum. Demek istediğim buydu. Teşekkürler.
eyerah

11

En son QGIS 2.14 sürümüne güncelleme yaparsanız, aşağıdaki gibi bir sql ifadesi oluşturan sanal katmanları kullanabilirsiniz:

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

Kullanıcı arayüzü şöyle:

resim açıklamasını buraya girin

Ayrıca sql düğmesinin arkasında bir sorgu oluşturucu bulunan DB yöneticisini de kullanabilirsiniz:

resim açıklamasını buraya girin

MYID sütunu, toplanan satışları ana tabloya geri eklemek için kullanılabilir. Birleştirme sekmesi, tabel özelliklerinin altındadır.

Bir göz atın görsel değişiklik günlüğü QGIS altındanFeature: Virtual layers


6

Bunu yapmanın bir yolu şudur:

  • Özellik tablosunda, özelliğe göre seç'i seçin. "Column-name" = 1023 yazın. 1023 değerine sahip tüm alanlar seçilir.
  • Vektör araçlarına -> Analiz araçlarına -> temel istatistiklere gidin. Katmanınızı ve satışla birlikte sütunu seçin. "Yalnızca seçilen değerler" onay kutusunu işaretlediğinizden emin olun. Toplam, sonuç penceresinde görüntülenecektir. Yazmalısınız;)
  • her posta kodu için adımları tekrarlayın

1
PS Eksik değerler sorun değil.
Miron

Bu basit ve iyi çalışan bir yaklaşımdır. Ancak,
Ammar'ın
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.