Im Beispielcode für die Funktion PostGIS ST_ConvexHull würden mehrere Polygone basierend auf verschiedenen diskreten Werten im Feld "Krankheitstyp" erstellt.
--Get estimate of infected area based on point observations
SELECT d.disease_type,
ST_ConvexHull(ST_Collect(d.the_geom)) As the_geom
FROM disease_obs As d
GROUP BY d.disease_type;
Nehmen wir an, es gab ein numerisches Feld (nennen wir es "mein Feld") mit kontinuierlichen Werten von 0 bis 5. Wie würden Sie ähnliche Ergebnisse wie GROUP BY erzielen, aber Ihre eigenen Haltepunkte definieren (zum Beispiel: 0-1,25, 1,25-3,5, 3,5-5)?
postgis
postgresql
RyanKDalton
quelle
quelle
Antworten:
Mit CASE können Sie Klassen erstellen. So ähnlich:
quelle
Hallo
In diesen Fällen erstelle ich eine Tabelle mit den Klassen und verbinde sie mit ihnen oder verwende eine Unterabfrage, um eine Liste von Klassen zu erstellen.
Ich denke, das bietet einen intuitiveren Ansatz und ich denke, es ist flexibler, da Sie die Klassen aktualisieren können, indem Sie einfach eine Tabelle aktualisieren.
Ein weiterer Vorteil ist, dass Sie auch die leeren Klassen erhalten können.
Der Unterabfrage-Ansatz könnte ungefähr so aussehen:
Hier habe ich einen rechten Join verwendet, um auch die leeren Klassen zu erhalten, was manchmal nützlich sein kann. Wenn Sie nicht möchten, dass die leeren einfach zu einem inneren Join wechseln.
Wenn Sie die Klassen in eine Tabelle verschieben und den Rest der Abfrage in einer Ansicht platzieren, können Sie die Klassen ändern, ohne die Abfrage zu berühren.
HTH / Nicklas
quelle