[FOSSGIS-Talk] Aufsummieren von Spalten im Ausdruckseditor
Claas Leiner
claas.leiner at gkg-kassel.de
Mo Nov 4 12:50:35 CET 2019
Hallo Zusammenn,
ich versuche gerade mit dem Ausdruckseditor das Aufsummieren
von Spaltenwerten umzusetzen, komme aber zu keiner Lösung:
Problemstellung:
Es gibt eine Spalte "Id", die einfach eine Folge von Linenabschnitten
beschreibt, eine Spalte "length" welche die Längen der Linienabschnitte
abbildet. Außerdem gibt es die Spalte "bereich", mit der die einzelnen
Bereiche benannt werden, für die die Aufsummierung umgesetzt werden soll.
Jetzt soll für jeden Bereich eine Aufsummierung der Strecke ("length")
je folgenden Abschnitt vorgenommen werden, so dass das Ergebnis mit der
Laufsumme folgendermaßen aussieht:
id length bereich laufsumme
1 1631.737272 4306 1631.737272
2 11.4693348 4306 1643.2066068
3 10.2346697 4306 1653.4412765
4 5.1664905 4306 1658.607767
5 5.0219197 4306 1663.6296867
6 10.4880995 4306 1674.1177862
7 57.6267049 4306 1731.7444911
8 220.8260778 4306 1952.5705689
9 310.3634339 4306 2262.9340028
10 121.3497062 4306 2384.283709
In PostGis (leider nicht in den sqlite-versionen, die mit QGIS oder
SpatiaLite ausgeliefert werden) lässt sich das mit Window-Funktionen
umsetzen:
------
SELECT
id,
"length",
"bereich",
SUM("length") OVER (ORDER BY id,bereich ASC) AS laufsumme
FROM strassen
ORDER BY id ASC
---------
Im Ausdruckseditor bin ich mit nicht zum Ziel gekommen. Am Ende habe ich
die aufzusummierenden Abschnitte in Arrays geschrieben:
-------------
array_to_string(
array_slice(
( array_agg( "length" , group_by:= "bereich" ) ),
(minimum( "id" ,group_by:= "bereich" )) -1 , "id" -1
)
)
---------------------------------------------------------
In der dritten Zeilte steht dann beispielsweise:
1631.737272,11.4693348,10.2346697
Aber es gibt ja keine sum() Funktion ohne Agreggierung, mit der man auf
den String zugreifen kann (max und min gibt es).
Hat jemand eine Idee, wie sich die Auffsummierung im Ausdruckseditor
umsetzen lässt?
Viele Grüße,
Claas
--
-----------------------------------------
GKG-Kassel - Dr.-Ing. Claas Leiner
QGIS-Support und mehr
Geodatenservice, Kartenwerkstatt &
GIS-Schule Kassel
Wilhelmshöher Allee 304 E
34131 Kassel
Tel. 0561/56013445
claas.leiner at gkg-kassel.de
----------------------------------------
http://www.gkg-kassel.de
----------------------------------------
Unterstützen Sie QGIS
QGIS-DE e.V. | http://qgis.de
QGIS Projekt | http://qgis.org/de/site/
Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste