メインコンテンツまでスキップ
に最終更新

ST_NUMGEOMETRIES

説明​

ジオメトリオブジェクトに含まれるサブジオメトリの数を返します。コレクションではない型(Point、LineString、Polygon、Circle)では常に 1 を返します。コレクション型(MultiPolygon)では、コレクション内のサブジオメトリの数を返します。

注記

4.1.2 以降

構文​

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