Ich möchte die Summe der Werte in einer Spalte anhand der Werte in einer anderen Spalte berechnen. Um meine Frage zu veranschaulichen, habe ich das folgende Bild hochgeladen. Die zweite Spalte besteht aus Postleitzahlen, der dritte Gesamtumsatz. Ich möchte wissen, wie hoch der Gesamtumsatz pro Postleitzahl ist. Also in diesem Fall:
Was ist die Summe von Spalte drei für den Wert von Spalte zwei 1023
? Ausgabe sollte dann sein 4 (0+1+1+2+0)
. Die Summe für 1024
dann sollte nach der gleichen Logik 11,5 sein.
Da dies ein ziemlich großer Datensatz ist, möchte ich, dass der QGIS-Feldrechner (oder ein anderes Tool) ein neues Feld berechnet, in dem der Gesamtumsatz in der Postleitzahl angegeben ist. Bisher kann ich es anscheinend nicht zum Laufen bringen und habe gehofft, dass mir hier jemand helfen kann.
Wie Sie sehen, habe ich einige fehlende Werte. Ist dies ein Problem bei der Berechnung? Vielleicht ist es gut zu erwähnen, dass es sich um einen Tisch handelt.
quelle
Antworten:
Update: QGIS 2.18 (07/07/2017):
Im Feldrechner können Sie die Aggregatfunktion verwenden
sum
, mit der Sie die Werte einer Spalte basierend auf einem Ausdruck summieren können. Optional können Sie auch Features für die Summierung gruppieren und filtern. In Ihrem Feldrechner können Sie also einfach Folgendes verwenden:Das funktioniert genauso wie die Methode mit dem GroupStats- Plugin.
Ursprünglicher Beitrag: 02/03/2016
Verwenden Sie das GroupStats- Plugin, das Sie möglicherweise unter Plugins> Plugins verwalten und installieren herunterladen müssen .
Hier ist eine Beispielebene mit einigen der Attribute, die Sie gezeigt haben:
Also lasst uns:
Führen Sie das GroupStats- Plugin aus, wählen Sie die relevanten Felder für die Summierung aus (
Sales
für Zeilen;Sum
für Werte) und klicken Sie dann auf Berechnen . Sie sollten die Ergebnisse sehen, die die Summe jedes Verkaufs zeigen:Speichern Sie die Ergebnisse als CSV-Datei in der GroupStats-Symbolleiste:
Importieren Sie die CSV-Datei zurück in QGIS, indem Sie sie auf die Benutzeroberfläche oder von der Symbolleiste ziehen:
Ebene> Ebene hinzufügen> Begrenzte Textebene hinzufügen ( beachten Sie, dass die Werte durch Semikolons getrennt sind )
Führen Sie eine Verknüpfung mit dem Shapefile und der CSV-Datei durch, die den
Sales
Feldern entsprechen:Das Shapefile sollte nun die Summenwerte aus der CSV-Datei enthalten:
Wenn Sie möchten, können Sie die
Save As...
Option im Shapefile verwenden und als neue speichern, um die verbundenen Felder beizubehalten.quelle
sum( "Sum", "Sales")
wird"Sales"
als Gruppenfilter verwendet, wenn Sie das meinen?Wenn Sie auf die neueste QGIS-Version 2.14 aktualisieren, können Sie virtuelle Ebenen verwenden, die eine SQL-Anweisung wie folgt erstellen:
Die Benutzeroberfläche sieht folgendermaßen aus:
Sie können auch den DB-Manager verwenden, in dem sich hinter der SQL-Schaltfläche ein Abfrage-Generator befindet:
Die Spalte MYID kann verwendet werden, um die summierten Verkäufe wieder mit der Haupttabelle zu verknüpfen. Die Registerkarte Verbinden befindet sich unter Tabelleneigenschaften.
Schauen Sie sich das QGIS Visual Changelog unter an
Feature: Virtual layers
quelle
Eine Möglichkeit, dies zu tun, ist die folgende:
quelle