プライマリ・コンテンツに移動
Oracle® Spatial and Graph開発者ガイド
12cリリース1 (12.1)
B72470-07
目次へ移動
目次
索引へ移動
索引

前
次

28.1 SDO_SAM.AGGREGATES_FOR_GEOMETRY

書式

SDO_SAM.AGGREGATES_FOR_GEOMETRY(
     theme_name       IN VARCHAR2, 
     theme_colname    IN VARCHAR2, 
     aggr_type_string IN VARCHAR2, 
     aggr_col_string  IN VARCHAR2, 
     geom             IN SDO_GEOMETRY, 
     dst_spec         IN VARCHAR2 DEFAULT NULL 
     ) RETURN NUMBER;

説明

ジオメトリのテーマ集計を行います。

パラメータ

theme_name

テーマ表の名前を指定します。

theme_colname

theme_nameのジオメトリ列の名前を指定します。

aggr_type_string

1つ以上の数値を受け入れ、1つの数値を算出するOracle SQLの集計ファンクションを指定します(SUMMINMAXAVGなど)。

aggr_col_string

集計値の計算を行うtheme_nameの列名を指定します(「使用上の注意」を参照)。たとえば、POPULATION列を指定します。

geom

ジオメトリ・オブジェクト。

dst_spec

距離バッファまたは考慮すべき最も近いジオメトリの数を指定する文字列を引用符で囲んで指定します。書式および意味については、「使用上の注意」を参照してください。

使用上の注意

特定のジオメトリについて、このファンクションはtheme_name表のジオメトリを識別して、共通部分の比率を検出し、指定された集計にその比率を掛けて、ジオメトリの集計を行います。具体的には、指定されたジオメトリと交差するtheme_name表のすべての行について、次のファンクションの値を戻します。

aggr_type_string(aggr_col_string * proportional_area_of_intersection(geometry, theme_name.theme_colname))

theme_colname列には、空間索引が定義されている必要があります。最適なパフォーマンスを得るには、この列に簡略化されたジオメトリを挿入します。

dst_specパラメータを指定する場合は、次のうちのいずれかを引用符で囲んで指定します。

  • distanceキーワードおよびオプションでunitキーワード(距離値に関係付けられる測定単位)。これにより、ジオメトリの周りにバッファを指定します。たとえば、'distance=2 unit=km'は、入力ジオメトリの周りに2kmのバッファを指定します。dst_specを指定しない場合、バッファは使用されません。

    unitキーワードを指定する場合、値はMDSYS.SDO_DIST_UNITS表のSDO_UNIT値('unit=km'など)である必要があります。unitキーワードを指定しない場合、ジオメトリに関連付けられた測定単位が使用されます。測定単位の指定の詳細は、「測定単位のサポート」を参照してください。

  • sdo_num_resキーワード。これにより、考慮すべき最も近くにあるジオメトリの数を指定します(比率により求められる範囲は考慮しません)。たとえば、'sdo_num_res=5'は、指定した点に最も近い5都市の人口を要求する問合せに使用できます。

次の例では、指定した点ジオメトリを中心に、半径3マイルの領域でテーマ集計を行います。この例では、国内の人口分布が均一であると仮定して、様々な国の円の面積の割合に基づき、その領域内の総人口を計算します。

SELECT sdo_sam.aggregates_for_geometry(
  'GEOD_COUNTIES', 'GEOM',
  'sum', 'totpop',
  SDO_GEOMETRY(2001, 8307,
    SDO_POINT_TYPE(-73.943849, 40.6698,NULL),
    NULL, NULL),
  'distance=3 unit=mile')
FROM DUAL a ;