최종 수정: 에
ST_NUMGEOMETRIES
설명
지오메트리 객체에 포함된 하위 지오메트리의 개수를 반환합니다. 컬렉션이 아닌 타입(Point, LineString, Polygon, Circle)의 경우 항상 1을 반환합니다. 컬렉션 타입(MultiPolygon)의 경우 컬렉션에 포함된 하위 지오메트리의 개수를 반환합니다.
구문
ST_NUMGEOMETRIES( <shape> )
매개변수
| 매개변수 | 설명 |
|---|---|
<shape> | 입력 지오메트리로, GEOMETRY 타입 또는 GEOMETRY로 변환할 수 있는 VARCHAR 타입(WKT 형식)입니다. |
반환 값
지오메트리 객체에 포함된 하위 지오메트리의 개수를 나타내는 BIGINT 값을 반환합니다.
ST_NUMGEOMETRIES는 다음과 같은 특수한 경우를 처리합니다.
- 입력 매개변수가
NULL이면NULL을 반환합니다. - 입력 매개변수를 유효한 지오메트리 객체로 파싱할 수 없으면
NULL을 반환합니다. - 컬렉션이 아닌 타입(
POINT,LINESTRING,POLYGON,CIRCLE)의 경우 항상1을 반환합니다. MULTIPOLYGON의 경우 컬렉션에 포함된 폴리곤의 개수를 반환합니다.
예제
Point의 지오메트리 개수
SELECT ST_NUMGEOMETRIES(ST_Point(1, 2));
+----------------------------------+
| ST_NUMGEOMETRIES(ST_Point(1, 2)) |
+----------------------------------+
| 1 |
+----------------------------------+
Polygon의 지오메트리 개수
SELECT ST_NUMGEOMETRIES(ST_GeometryFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))'));
+------------------------------------------------------------------------------+
| ST_NUMGEOMETRIES(ST_GeometryFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) |
+------------------------------------------------------------------------------+
| 1 |
+------------------------------------------------------------------------------+
폴리곤 두 개를 포함하는 MultiPolygon의 지오메트리 개수
SELECT ST_NUMGEOMETRIES(ST_GeometryFromText('MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)),((2 2, 3 2, 3 3, 2 3, 2 2)))'));
+------------------------------------------------------------------------------------------------------------------+
| ST_NUMGEOMETRIES(ST_GeometryFromText('MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)),((2 2, 3 2, 3 3, 2 3, 2 2)))')) |
+------------------------------------------------------------------------------------------------------------------+
| 2 |
+------------------------------------------------------------------------------------------------------------------+
Circle의 지오메트리 개수
SELECT ST_NUMGEOMETRIES(ST_Circle(0, 0, 100));
+----------------------------------------+
| ST_NUMGEOMETRIES(ST_Circle(0, 0, 100)) |
+----------------------------------------+
| 1 |
+----------------------------------------+
NULL 매개변수
SELECT ST_NUMGEOMETRIES(NULL);
+------------------------+
| ST_NUMGEOMETRIES(NULL) |
+------------------------+
| NULL |
+------------------------+
유효하지 않은 매개변수(NULL 반환)
SELECT ST_NUMGEOMETRIES(ST_GeometryFromText('INVALID'));
+--------------------------------------------------+
| ST_NUMGEOMETRIES(ST_GeometryFromText('INVALID')) |
+--------------------------------------------------+
| NULL |
+--------------------------------------------------+