Re: Zusammenfassung mehrerer boolean Spalten
"Gunnar \"Nick\" Bluth" <[email protected]> Wed, 18 Nov 2015 16:42:44 +0100
| Newsgroups | gmane.comp.db.postgresql.german |
|---|---|
| Message-ID | <[email protected]> |
Am 18.11.2015 um 16:32 schrieb Gunnar Oehmichen: > Hallo, Hallo, Namensvetter! > Folgendes Problem: > > Ich habe zwei räumliche Tabellen (PostGIS) Kat und Geb. > Ich teste mit unterschiedlichen PostGIS Funktionen ob sich die einzelnen > Geometrien (Multipolygone) der beiden Tabellen überschneiden/überlagern > etc (also ob diese Flächen miteinander Teilen): > > zB: > > SELECT Kat.id AS kat_id, Geb.id AS geb_id, > > ST_Intersects (Kat.geom, Geb.geom) AS Kat_inters_Geb, > ST_Contains (Kat.geom, Geb.geom) AS Kat_contains_Geb, > ST_Within (Kat.geom, Geb.geom) AS Kat_in_Geb > > FROM Kat CROSS JOIN Geb; > > Alle drei (und weitere nicht gezeigte) ST_ Funktionen haben einen > boolean Output. > > kat_id geb_id kat_inters_geb kat_contains_geb kat_in_geb > 1 130294 3214 FALSE FALSE FALSE > 2 130294 3215 FALSE FALSE FALSE > 3 130294 3216 FALSE FALSE FALSE > > Ich würde gerne in der gleichen Abfrage mir eine Spalte ausgeben lassen, > welche bezeichnet ob überhaupt in einer Reihe einer der Vergleiche TRUE > ist (oder wie viele TRUE sind). > Außerdem, wenn möglich eine Spalte welche die Spalte(n) bezeichnet > welche TRUE ist/sind. > > Ist dies möglich? Es dürfte sicherlich keine Rolle spielen, dass ich > hier spezielle PostGIS Funktionen nutze, sondern der Output müsste > entscheidend sein. Was du suchst ist wohl GREATEST(kat_inters_geb, kat_contains,_geb kat_in_geb) (das Gegenstück ist LEAST) Gruß, -- Gunnar "Nick" Bluth DBA ELSTER Tel: +49 911/991-4665 Mobil: +49 172/8853339 -- Sent via pgsql-de-allgemein mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-de-allgemein