Chciałbym obliczyć sumę wartości w jednej kolumnie na podstawie wartości w innej kolumnie. Aby zilustrować moje pytanie, przesłałem zdjęcie poniżej. Druga kolumna składa się z kodów pocztowych, trzecia całkowita sprzedaż. Chciałbym wiedzieć, jaka jest łączna sprzedaż na kod pocztowy? Więc w tym przypadku:
Jaka jest suma kolumny trzeciej dla wartości kolumny drugiej 1023
? Dane wyjściowe powinny być 4 (0+1+1+2+0)
. Suma za 1024
to powinna wynosić 11,5 zgodnie z tą samą logiką.
Ponieważ jest to dość duży zestaw danych, chciałbym, aby kalkulator pola QGIS (lub inne narzędzie) obliczył nowe pole, które podaje całkowitą sprzedaż w kodzie pocztowym. Jak dotąd nie wydaje mi się, żeby działało i miałem nadzieję, że ktoś tutaj może mi pomóc.
Jak widać, brakuje niektórych wartości, czy jest to problem w obliczeniach? Być może warto wspomnieć, że jest to stół.
źródło
Odpowiedzi:
Aktualizacja: QGIS 2.18 (07/07/2017):
W kalkulatorze polowym można użyć funkcji agregującej,
sum
która pozwala zsumować wartości kolumny na podstawie wyrażenia. Możesz także opcjonalnie grupować i filtrować funkcje sumowania. W kalkulatorze polowym możesz po prostu użyć:Który robi dokładnie to samo co metoda wykorzystująca wtyczkę GroupStats .
Oryginalny post: 02.03.2016
Użyj wtyczki GroupStats, którą może być konieczne pobranie z wtyczek> Zarządzaj i instaluj wtyczki .
Oto przykładowa warstwa wykorzystująca niektóre z pokazanych atrybutów:
Więc:
Uruchom wtyczkę GroupStats , wybierz odpowiednie pola do zsumowania (
Sales
dla wierszy;Sum
dla wartości), a następnie kliknij Oblicz . Powinieneś zobaczyć wyniki pokazujące sumę każdej sprzedaży:Zapisz wyniki jako plik .csv z paska narzędzi GroupStats:
Zaimportuj plik .csv z powrotem do QGIS, przeciągając go do interfejsu lub z paska narzędzi:
Warstwa> Dodaj warstwę> Dodaj ograniczoną warstwę tekstową ( zwróć uwagę, że wartości są oddzielone średnikami )
Zrobić przyłącza z shapefile i pliku .csv, dopasowując
Sales
pola:Plik shapefile powinien teraz zawierać wartości sumy z pliku .csv:
Możesz, jeśli chcesz, kontynuować korzystanie z
Save As...
opcji w pliku kształtu i zapisać go jako nowy, aby zachować połączone pola.źródło
sum( "Sum", "Sales")
używa"Sales"
jako filtr grupowy, jeśli o to ci chodzi?W przypadku aktualizacji do najnowszej wersji QGIS 2.14 można używać warstw wirtualnych, tworząc instrukcję SQL, np .:
Interfejs wygląda następująco:
Możesz także użyć menedżera DB, w którym za przyciskiem sql znajduje się kreator zapytań:
Kolumny MYID można użyć do dołączenia zsumowanej sprzedaży z powrotem do głównej tabeli. Karta łączenia znajduje się w obszarze właściwości tabeli.
Spójrz na wizualny dziennik zmian QGIS pod
Feature: Virtual layers
źródło
Można to zrobić następująco:
źródło