Name

ST_ClusterIntersectingWin — Fensterfunktion, die für jede Eingabegeometrie eine Cluster-ID zurückgibt und die Eingabegeometrien in zusammenhängende Gruppen clustert.

Synopsis

integer ST_ClusterIntersectingWin(geometry winset geom);

Beschreibung

Eine Fensterfunktion, die zusammenhängende Cluster von sich schneidenden Geometrien bildet. Es ist möglich, alle Geometrien in einem Cluster zu durchlaufen, ohne den Cluster zu verlassen. Der Rückgabewert ist die Clusternummer, an der das Geometrieargument beteiligt ist, oder null für Nulleingaben.

Verfügbarkeit: 3.4.0

Beispiele

WITH testdata AS (
  SELECT id, geom::geometry FROM (
  VALUES  (1, 'LINESTRING (0 0, 1 1)'),
          (2, 'LINESTRING (5 5, 4 4)'),
          (3, 'LINESTRING (6 6, 7 7)'),
          (4, 'LINESTRING (0 0, -1 -1)'),
          (5, 'POLYGON ((0 0, 4 0, 4 4, 0 4, 0 0))')) AS t(id, geom)
)
SELECT id,
  ST_AsText(geom),
  ST_ClusterIntersectingWin(geom) OVER () AS cluster
FROM testdata;

 id |           st_astext            | cluster
----+--------------------------------+---------
  1 | LINESTRING(0 0,1 1)            |       0
  2 | LINESTRING(5 5,4 4)            |       0
  3 | LINESTRING(6 6,7 7)            |       1
  4 | LINESTRING(0 0,-1 -1)          |       0
  5 | POLYGON((0 0,4 0,4 4,0 4,0 0)) |       0