書式
SDO_SAM.AGGREGATES_FOR_LAYER( theme_name IN VARCHAR2, theme_colname IN VARCHAR2, aggr_type_string IN VARCHAR2, aggr_col_string IN VARCHAR2, tablename IN VARCHAR2, colname IN VARCHAR2, dst_spec IN VARCHAR2 DEFAULT NULL ) RETURN SDO_REGAGGRSET;
説明
ジオメトリのレイヤーのテーマ集計を行います。
パラメータ
テーマ表の名前を指定します。
theme_name
のジオメトリ列の名前を指定します。
1つ以上の数値を受け入れ、1つの数値を算出するOracle SQLの集計ファンクションを指定します(SUM
、MIN
、MAX
、AVG
など)。
集計値の計算を行うtheme_name
の列名を指定します(「使用上の注意」を参照)。たとえば、POPULATION列を指定します。
データ・マイニング表の名前を指定します。
ジオメトリを格納するtablename
の列名を指定します。
距離バッファまたは考慮すべき最も近いジオメトリの数を指定する文字列を引用符で囲んで指定します。書式および意味については、この章に示すSDO_SAM.AGGREGATES_FOR_GEOMETRYファンクションの「使用上の注意」を参照してください。
使用上の注意
tablename
の各ジオメトリについて、このファンクションはtheme_name
表のジオメトリを識別して、共通部分の比率を検出し、指定された集計にその比率を掛けて、tablename
の各ジオメトリの集計を行います。具体的には、theme_name
表のすべての行について、次のファンクションの値を戻します。
aggr_type_string(aggr_col_string * proportional_area_of_intersection(geometry, theme_name.theme_colname))
このファンクションは、SDO_REGAGGRSET型のオブジェクトを戻します。SDO_REGAGGRSETオブジェクト型は、次のとおり定義されます。
TABLE OF SDO_REGAGGR
SDO_REGAGGRオブジェクト型は、次のとおり定義されます。
Name Null? Type ----------------------------------------- -------- ---------------------------- REGION_ID VARCHAR2(24) GEOMETRY MDSYS.SDO_GEOMETRY AGGREGATE_VALUE NUMBER
theme_colname
列には、空間索引が定義されている必要があります。最適なパフォーマンスを得るには、この列に簡略化されたジオメトリを挿入します。
例
次の例では、TEST_TABという表のすべてのジオメトリについて、指定した点ジオメトリを中心に、半径3マイルの領域でテーマ集計を行います。この例では、国内の人口分布が均一であると仮定して、様々な国の円の面積の割合に基づき、各領域内の総人口を計算します。
SELECT a.aggregate_value FROM TABLE(sdo_sam.aggregates_for_layer( 'GEOD_COUNTIES', 'GEOM', 'SUM', TOTPOP', TEST_TAB', 'GEOM' 'distance=3 unit=mile')) a;