Hallo Reinhard,

ich meinte nicht, dass Du GROUP BY weglassen solltest, sondern, warum es nicht in der Klammer steht. COALESCE gibt den ersten NOT NULL-Wert in einer Reihe von Werten zurück, deshalb meine Frage, ob es sich um eine NULL oder eine leere Geometrie handelt.

Grüße

Bernhard

Am 14.09.2016 um 22:09 schrieb R. Reiterer:
Hallo Bernhard,

vielen Dank für deine Antwort. ST_Dump nutze ich um Multipolygone in
Einzelpolygone zu zerlegen, etwa wenn eine Gewässergeometrie eine
Grünlandgeometrie in mehrere Teile zerteilt. Ohne GROUP BY erhalte ich
eine Fehlermeldung:

column "gruenland.geom" must appear in the GROUP BY clause or be used in
an aggregate function
LINE 7:   (ST_Dump(ST_Difference(gruenland.geom, ST_Union(gewaeser.geom...

Zu COALESCE habe ich mir leider keine Notizen beim Erstellen der Abfrage
gemacht :/ Ich bin davon ausgegangen, dass COALESCE nötig ist, um die
Grünlandgeometrien zu erhalten, wenn keine räumliche Überschneidung mit
bestehenden Gewässergeometrien vorliegt. Anscheinend ist dies aber - wie
soeben getestet - nicht der Fall. Näheres möchte ich mir in den nächsten
Tagen ansehen.

Schöne Grüße,

Reinhard

Am 14.09.2016 07:52 schrieb Bernhard Ströbl:
Hallo Reinhard,

ich bin jetzt nicht sicher aber ich vermute, dass COALESCE da nicht
richtig ist. Hast Du es schon mal mit ST_IsEmpty() probiert
Ich würde mich der Sache folgendermassen annähren:
Erst mal sehen (ich mache das immer mit ST_AsText()), was
ST_Difference in den Fällen, in denen gewaesser.geom keine Geometrie
hat, zurück gibt. Ist der Rückgabewert wirklich NULL oder eine leere
Geometrie?

Nochwas: ST_Dump habe ich noch nie benutzt aber die Dokumentation sagt
"ST_Dump is useful for expanding geometries. It is the reverse of a
GROUP BY in that it creates new rows." Deshalb wundere ich mich, dass
Deine GROUP BY-Klausel hinter der Klammer steht, in der ST_Dump steht.
Ich würde es auf der selben Klammerebene erwarten wie das ST_Union,
also eher sowas:
ST_Dump(
  COALESCE(
    ST_Difference(gruenland.geom, ST_Union(gewaesser.geom)
    ),
  gruenland.geom
  )
  FROM public.gruenland, public.gewaesser
  GROUP BY gruenland.gid
).geom::geometry(Polygon, 31256) AS geom

viel Erfolg

Bernhard

Am 13.09.2016 um 20:10 schrieb R. Reiterer:
Geehrte PostGIS Enthusiasten,

ich nutze in QGIS nachfolgende SQL Abfrage um aus dem Layer "gruenland"
(Polygone) den Layer 'gewaesser' (ebenfalls Polygone) gewissermaßen
auszustechen.

CREATE VIEW public.gruenland_differenz AS
SELECT
   row_number() over() AS gid,
   unterabfrage.geom
FROM
(SELECT
   (ST_Dump(COALESCE(ST_Difference(gruenland.geom,
ST_Union(gewaesser.geom)), gruenland.geom))).geom::geometry(Polygon,
31256) AS geom
   FROM public.gruenland, public.gewaesser
   GROUP BY gruenland.gid
) AS unterabfrage;

Einige Datensätze beinhalten für den Layer 'gewaesser' jedoch keine
Geometrien. Die Abfrage gibt in solchen Fällen kein Ergebnis zurück,
gewünscht sind jedoch die unbearbeiteten 'gruenland' Polygone. Kann mir
diesbezüglich jemand bei der Adaptierung der Abfrage helfen?

Vielen Dank und schöne Grüße,

Reinhard

--
....................................................................
FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
GIS-Bereich und Freier Geodaten!
http://www.fossgis.de/             https://twitter.com/fossgis_eV

____________________________________________________________________
FOSSGIS-Talk-Liste mailing list
FOSSGIS-Talk-Liste@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste


__________ Information from ESET Mail Security, version of virus
signature database 14115 (20160913) __________

The message was checked by ESET Mail Security.
http://www.eset.com




__________ Information from ESET Mail Security, version of virus
signature database 14118 (20160914) __________

The message was checked by ESET Mail Security.
http://www.eset.com


--
....................................................................
FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
GIS-Bereich und Freier Geodaten!
http://www.fossgis.de/             https://twitter.com/fossgis_eV

____________________________________________________________________
FOSSGIS-Talk-Liste mailing list
FOSSGIS-Talk-Liste@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
--
....................................................................
FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
GIS-Bereich und Freier Geodaten!
http://www.fossgis.de/             https://twitter.com/fossgis_eV

____________________________________________________________________
FOSSGIS-Talk-Liste mailing list
FOSSGIS-Talk-Liste@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste


__________ Information from ESET Mail Security, version of virus
signature database 14122 (20160914) __________

The message was checked by ESET Mail Security.
http://www.eset.com






__________ Information from ESET Mail Security, version of virus signature 
database 14124 (20160915) __________

The message was checked by ESET Mail Security.
http://www.eset.com


--
....................................................................
FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
GIS-Bereich und Freier Geodaten!
http://www.fossgis.de/             https://twitter.com/fossgis_eV

____________________________________________________________________
FOSSGIS-Talk-Liste mailing list
FOSSGIS-Talk-Liste@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste

Antwort per Email an