ST_ClusterIntersectingWin — Fensterfunktion, die für jede Eingabegeometrie eine Cluster-ID zurückgibt und die Eingabegeometrien in zusammenhängende Gruppen clustert.
integer ST_ClusterIntersectingWin(geometry winset geom);
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
Return an explicit cluster id for each input geometry. Using the conventional cid alias keeps the geometry column ready for color-by-cluster rendering.
WITH testdata(id, geom) AS (
VALUES (1, 'LINESTRING (0 0,1 1)'::geometry),
(2, 'LINESTRING (5 5,4 4)'::geometry),
(3, 'LINESTRING (6 6,7 7)'::geometry),
(4, 'LINESTRING (0 0,-1 -1)'::geometry),
(5, 'POLYGON ((0 0,4 0,4 4,0 4,0 0))'::geometry)
), clustered AS (
SELECT id,
geom,
ST_ClusterIntersectingWin(geom) OVER () AS cid
FROM testdata
)
SELECT id,
geom AS geom_wkt,
cid
FROM clustered
ORDER BY id;
id | geom_wkt | cid ----+--------------------------------+----- 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
ST_ClusterIntersecting, ST_ClusterWithin, ST_ClusterWithinWin