Hallo, habe meine Probleme mit einer der klassischsten Abfragen.
Ich habe die Tabelle 1 mit Polygonen und die Tabelle 2 mit Punkten . Nun möchte ich alle Polygone, die einen Punkt enthalten und zudem die Anzahl der enthaltenen Punkte.
Mit der folgenden Abfrage bekomme ich auch ein Ergebnis:
select a.the_geom, count(*) as anzahl
from tabelle1 as a, tabelle 2 as b
where a.the_geom ~ b.the_geom
group by a.the_geom
order by anzahl asc;
Mein Problem: Mit count(*) erhalte ich (so denke ich), die Zahl der Punkte, die innerhalb eines Polygons liegen. Bilde ich allerdings die Summe, komme ich auf mehr Punkte (22761), als in der Ausgangsdatei sind (16322). Mit der Funktion 'within' in der where-Bedingung habe ich das gleiche Problem.Wenn ich mir beide Layer in QGIS übereinanderlege und mal einige Polygone durchzähle, stimmt das auch nicht.
Muss ich eine andere Aggregatfunktion als count(*) nutzen? Habe allerdings auch schon getestet, in der Tabelle mit den Punkten eine neue Spalte 'zaehler' anzulegen, die eine '1' enthält. Die habe ich dann mit "sum(zaehler)" in die Sytax eingebaut, ohne dass dies zu einem anderen Ergebnis geführt hätte.
Kann mir jemand nen Tipp geben, woran es liegt?
Vielen dank.
