Re: Zusammenfassung mehrerer boolean Spalten

Thomas Markus <[email protected]> Wed, 18 Nov 2015 17:01:27 +0100
Newsgroups gmane.comp.db.postgresql.german
Organization proventis GmbH
Message-ID <[email protected]>
Hi Gunnar,

du müsstest die Funktionen mehrfach aufrufen oder ne Subquery benutzen. 
Das Beispiel sollte anpassbar sein:

select
     a,b,c,d
     , a::int + b::int + c::int + d::int as count
     , array_to_string(ARRAY[ case when a then 'a' end, case when b then 
'b' end, case when c then 'c' end, case when d then 'd' end ],',')
from
     (values(false, true, true, false)) as x(a,b,c,d)

Gruss
Thomas


Am 18.11.2015 um 16:32 schrieb Gunnar Oehmichen:
> Hallo,
>
> 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.
>
> Vielen Dank für die Hilfe,
>



-- 
Sent via pgsql-de-allgemein mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein