본문으로 건너뛰기
최종 수정: 에

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 |
+--------------------------------------------------+