ST_ClusterWithinWin — Window function that returns a cluster id for each input geometry, clustering using separation distance.
integer ST_ClusterWithinWin(geometry winset  geom, float8  distance);
A window function that returns a cluster number for each input geometry.
        Clustering partitions the geometries into sets
        in which each geometry is within the specified distance
        of at least one other geometry in the same cluster.
        Distances are Cartesian distances in the units of the SRID.
        
ST_ClusterWithinWin is equivalent to running ST_ClusterDBSCAN with minpoints => 0.
Availability: 3.4.0
            
            This method supports Circular Strings and Curves.
        
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_ClusterWithinWin(geom, 1.4) 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