---------------------- Beschriftung Aggregierung ---------------------- 


"Kreiswahlbezirk" 	|| '\n'  ||  
'Wähler: ' 		|| "Wahlberechtigte"  ||'\n'|| 
'alle Wähler: ' 	|| sum("Wahlberechtigte")  ||'\n'|| 
'Mittelwert: '  	|| round(mean("Wahlberechtigte"))  ||'\n'|| 
'Abweichung: '  	|| ("Wahlberechtigte" - (round(mean("Wahlberechtigte"))))  ||'\n'|| 
'Abweichung %: '  	|| (round(("Wahlberechtigte"/mean("Wahlberechtigte")-1)*100,2))


---------------------- mit Kommentaren ---------------------- 
select 
 
st_union(geometry)as geometry, -- st_union ist der Geometrie-Operator

-- ab hier kommen die gewünschten Attribute für den Output, bei mehr als einem das Komma nicht vergessen
-- mit "as" kann der Name im Output beeinflusst werden, "" bietet mehr Möglichkeiten 
-- cast zur Vermeidung von automatischem Runden von Zahlen 
   
"Kreiswahlbezirk" as "Landratswahlbezirk",
sum("Wahlberechtigte") as "Wähler im Bezirk", -- hier werden die Wähler aufaddiert
SUM(SUM("Wahlberechtigte")) OVER () AS "alle", -- hier wird die Summe der Summe erzeugt= alle Wähler zusammen
SUM(SUM("Wahlberechtigte")) OVER () / count("Wahlberechtigte")OVER () as "alle Mittelwert", -- Sollzahl der Wähler pro Bezirk, auto-round 
sum("Wahlberechtigte")- (SUM(SUM("Wahlberechtigte")) OVER () / count("Wahlberechtigte")OVER ()) as "delta", -- Abweichung Wählermenge
round(((cast(sum("Wahlberechtigte") as float)/(SUM(SUM("Wahlberechtigte")) OVER ()/count("Wahlberechtigte")OVER ()))-1)*100 ,2) as "delta%" -- Abweichung % Wählermenge
  
from kommWahlbezirke --from und dann kommt der Layername, so wie er gerade angezeigt wird

Group by "Kreiswahlbezirk" --auf welchem Attribut (hier "Kreiswahlbezirk") wird aggregiert

---------------------- ohne Kommentare ---------------------- 
select st_union(geometry)as geometry, 
Kreiswahlbezirk as Landratswahlbezirk,
sum("Wahlberechtigte") as "Wähler im Bezirk",
SUM(SUM("Wahlberechtigte")) OVER () AS alle,
SUM(SUM("Wahlberechtigte")) OVER () / count("Wahlberechtigte")OVER () as "alle Mittelwert",
sum("Wahlberechtigte")- (SUM(SUM("Wahlberechtigte")) OVER () / count("Wahlberechtigte")OVER ()) as delta,
round(((cast(sum("Wahlberechtigte") as float)/(SUM(SUM("Wahlberechtigte")) OVER ()/count("Wahlberechtigte")OVER ()))-1)*100 ,2) as "delta%"
from kommWahlbezirke
Group by Kreiswahlbezirk