Skip to content
🎉 Apache Sedona 1.8.1 is now available! Check out the new features and improvements.

Aggregate Function (Snowflake)

Note

Please always keep the schema name SEDONA (e.g., SEDONA.ST_GeomFromWKT) when you use Sedona functions to avoid conflicting with Snowflake's built-in functions.

ST_Envelope_Agg

Introduction: Return the entire envelope boundary of all geometries in A. Empty geometries and null values are skipped. If all inputs are empty or null, the result is null. This behavior is consistent with PostGIS's ST_Extent.

Format: ST_Envelope_Agg (A:geometryColumn)

Note

This function was previously named ST_Envelope_Aggr, which is deprecated since v1.8.1.

SQL example:

WITH src_tbl AS (
    SELECT sedona.ST_GeomFromText('POLYGON ((0 0, 0 1, 1 1, 1 0, 0 0))') AS geom
    UNION
    SELECT sedona.ST_GeomFromText('POLYGON ((0.5 0.5, 0.5 1.5, 1.5 1.5, 1.5 0.5, 0.5 0.5))') AS geom
)
SELECT sedona.ST_AsText(envelope)
FROM src_tbl,
     TABLE(sedona.ST_Envelope_Agg(src_tbl.geom) OVER (PARTITION BY 1));

Output:

POLYGON ((0 0, 0 1.5, 1.5 1.5, 1.5 0, 0 0))

ST_Intersection_Agg

Introduction: Return the polygon intersection of all polygons in A

Format: ST_Intersection_Agg (A:geometryColumn)

Note

This function was previously named ST_Intersection_Aggr, which is deprecated since v1.8.1.

SQL example:

WITH src_tbl AS (
    SELECT sedona.ST_GeomFromText('POLYGON ((0 0, 0 1, 1 1, 1 0, 0 0))') AS geom
    UNION
    SELECT sedona.ST_GeomFromText('POLYGON ((0.5 0.5, 0.5 1.5, 1.5 1.5, 1.5 0.5, 0.5 0.5))') AS geom
)
SELECT sedona.ST_AsText(intersected)
FROM src_tbl,
     TABLE(sedona.ST_Intersection_Agg(src_tbl.geom) OVER (PARTITION BY 1));

Output:

POLYGON ((0.5 1, 1 1, 1 0.5, 0.5 0.5, 0.5 1))

ST_Union_Agg

Introduction: Return the polygon union of all polygons in A

Format: ST_Union_Agg (A:geometryColumn)

Note

This function was previously named ST_Union_Aggr, which is deprecated since v1.8.1.

SQL example:

WITH src_tbl AS (
    SELECT sedona.ST_GeomFromText('POLYGON ((0 0, 0 1, 1 1, 1 0, 0 0))') AS geom
    UNION
    SELECT sedona.ST_GeomFromText('POLYGON ((0.5 0.5, 0.5 1.5, 1.5 1.5, 1.5 0.5, 0.5 0.5))') AS geom
)
SELECT sedona.ST_AsText(unioned)
FROM src_tbl,
     TABLE(sedona.ST_Union_Agg(src_tbl.geom) OVER (PARTITION BY 1));

Output:

POLYGON ((0 0, 0 1, 0.5 1, 0.5 1.5, 1.5 1.5, 1.5 0.5, 1 0.5, 1 0, 0 0))