これらの例では、AggGeomIntersection関数を使用して、sample_shapesテーブルの行にあるshape列値の空間的交差を取得します。
CREATE TABLE sample_shapes(skey INTEGER, shape ST_Geometry); INSERT INTO sample_shapes(1001,'MultiPoint((10 20 30),(40 50 60))'); INSERT INTO sample_shapes(1002,'Point(10 20 30)'); INSERT INTO sample_shapes(1003, 'Polygon((100 100 100, 100 500 500, 500 500 500, 500 100 500, 100 100 100))'); INSERT INTO sample_shapes(1004, 'Linestring (100 500 500, 500 100 500)'); INSERT INTO sample_shapes(1005, 'Polygon((500 500 500, 500 1000 1000, 1000 1000 1000, 1000 500 1000, 500 500 500))'); INSERT INTO sample_shapes(1006, 'Polygon((0 0 0, 0 50 50, 50 50 50, 50 0 50, 0 0 0))'); INSERT INTO sample_shapes(1007, 'Polygon((50 50 50, 50 100 100, 100 100 100, 100 50 100, 50 50 50))'); select AggGeomIntersection(shape) from sample_shapes; AggGeomIntersection(shape) --------------------------------------------------------------- GEOMETRYCOLLECTION EMPTY select AggGeomIntersection(shape) from sample_shapes where skey in (1001, 1002); AggGeomIntersection(shape) --------------------------------------------------------------- POINT (10 20 30) select AggGeomIntersection(shape) from sample_shapes where skey in (1003, 1004); AggGeomIntersection(shape) --------------------------------------------------------------- LINESTRING (100 500 500,500 100 500) select AggGeomIntersection(shape) from sample_shapes where skey in (1003,1005); AggGeomIntersection(shape) --------------------------------------------------------------- POINT (500 500 500) select AggGeomIntersection(shape) from sample_shapes where skey in (1006,1007); AggGeomIntersection(shape) --------------------------------------------------------------- POINT (50 50 50)