The ST_MultiLineStringAggr aggregate function can be used to combine a group of linestrings into a single collection. All
of the geometries to be combined must have both the same SRID and the same coordinate dimension.
Rows where the argument is NULL are not included.
Returns NULL for an empty group or a group containing no non-NULL values.
The resulting ST_MultiLineString has the same coordinate dimension as each linestrings.
The optional ORDER BY clause can be used to arrange the elements in a particular order so that ST_GeometryN returns them
in the desired order. If this ordering is not relevant, it is more efficient to not specify an ordering. In that case, the
ordering of elements depends on the access plan selected by the query optimizer.
ST_MultiLineStringAggr is more efficient than ST_UnionAggr, but ST_MultiLineStringAggr can return a collection with duplicate
or overlapping linestrings if they exist in the group of linestrings. ST_UnionAggr handles duplicate and overlapping geometries.
The following example returns a single value which combines all geometries of type ST_LineString from the SpatialShapes table
into a single collection of type ST_MultiLineString. If the Shape column was of type ST_LineString then the TREAT function
and WHERE clause would not be necessary.
SELECT ST_MultiLineString::ST_MultiLineStringAggr( TREAT( Shape AS ST_LineString ) )
FROM SpatialShapes WHERE Shape IS OF( ST_LineString )