[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