集約クエリ レイヤーの作成 (Make Aggregation Query Layer) (データ管理)

サマリー

関連テーブルからの時間、範囲、および属性クエリに基づいて、DBMS テーブルを動的に集計、集約、フィルターするクエリ レイヤーを作成し、その結果をフィーチャ レイヤーに結合します。

関連フィーチャへの値の集約の詳細

使用法

  • クエリ レイヤーは、エンタープライズ データベースのみで動作します。 ファイル ジオデータベースは、このツールに有効な入力ワークスペースではありません。

  • 集計結果は、常にデータベース レベルで動的に計算されます。

  • [出力レイヤー] 値は、統計演算の結果を含むフィールドで構成されます。 個数統計情報は、デフォルトで ROW_COUNT フィールドに含まれています

  • このツールで実行できる統計演算は、個数、合計、平均、最大、最小、および標準偏差です。

  • 統計のタイプごとに、次の命名規則を使用してフィールドが作成されます。COUNT_<field>SUM_<field>AVG_<field>MIN_<field>MAX_<field>STDDEV_<field>、(<field> は統計量を計算する入力フィールドの名前)。

  • [関連付けられる結合フィールド] 値は、このツールで生成される SQL 文の Group By 句で使用されます。 統計情報は、[関連付けられる結合フィールド] 値から一意の各属性値に対して個別に計算されます。

  • ツールで作成されたレイヤーは一時的なものであり、プロジェクトを保存するか、レイヤーをレイヤー ファイルに保存するか、[行のコピー (Copy Rows)] または [フィーチャのコピー (Copy Features)] でコピーを作成してデータを保持しておかない限り、セッション終了後に削除されます。

パラメーター

ラベル説明データ タイプ
ターゲット フィーチャクラス

エンタープライズ データベースのフィーチャクラスまたは空間テーブル。

Feature Class
ターゲット結合フィールド

結合のキーとなるターゲット フィーチャクラスのフィールド。

Field
リレート テーブル

統計の計算に使用するフィールドを含む入力テーブル。 統計情報は [出力レイヤー] 値に結合されます。

Table; Feature Class
関連付けられる結合フィールド

結合のキーとなる値が格納されている、集計テーブル内のフィールド。 集約または要約統計情報も、このフィールドの一意の属性値ごとに個別に計算されます。

Field
出力レイヤー

作成されるクエリ レイヤーの出力名。

Feature Layer
サマリー フィールド
(オプション)

属性値を含み、特定の統計の計算に使用される数値フィールドを指定します。 複数の統計とフィールドの組み合わせを指定できます。 すべての統計計算から NULL 値が除外されます。

出力レイヤーには、[関連付けられる結合フィールド] 値の各個別値の合計数 (または頻度) を示す ROW_COUNT フィールドが含まれます。 ROW_COUNT フィールドと [個数] 統計タイプの違いは、[個数] では NULL 値が除外されるのに対し、ROW_COUNT には NULL 値が含まれる点です。

使用できる統計タイプは次のとおりです。

  • [個数] - 統計の計算に含まれる値の数を検出します。 NULL 値以外の値の数がカウントされます。
  • [合計] - 指定したフィールドの値が加算されます。
  • [平均] - 指定したフィールドの平均が計算されます。
  • [最小] - 指定したフィールドのすべてのレコードから最も小さい値を検出します。
  • [最大] - 指定したフィールドのすべてのレコードから最も大きい値を検出します。
  • [標準偏差] - 指定したフィールド内の値の標準偏差が計算されます。
Value Table
パラメーターの定義
(オプション)

1 つ以上のクエリ パラメーターを基準または条件として指定し、これらの基準に一致するレコードを使用して集約結果を計算します。 クエリ パラメーターは、クエリが実行されるときに値が定義される SQL ステートメント変数に似ています。 これにより、出力レイヤーのクエリ フィルターを動的に変更することができます。 パラメーターは、SQL の WHERE 句における述部や条件と見なすことができます。 たとえば、SQL の WHERE 句にある Country_Name = 'Nigeria' は述部と呼ばれ、= は比較演算子、左側の Country_Name はフィールド名、右側の 'Nigeria' は値を表しています。 複数のパラメーターを定義する場合は、それらの間に論理演算子 (AND、OR など) を指定する必要があります。

クエリ レイヤーでのパラメーターの定義の詳細

指定しない場合、関連テーブルのすべてのレコードが集約結果または集計結果の計算に使用されます。

2 つのパラメーター定義タイプは次のとおりです。

次のプロパティが利用できます。

  • [パラメーターのタイプ] - パラメーターのタイプは [範囲] または [不連続] です。
  • [名前] - パラメーター名で、変数名に似ています。 名前にスペースや特殊文字を含めることはできません。 出力クエリ レイヤーが作成され、レイヤー ソース SQL 文がチェックされると、出力クエリ レイヤー ソースを定義する SQL 文に含まれるこの名前の先頭に ::r: (範囲パラメーターの場合) または :: (不連続パラメーターの場合) が付加されます。
  • [エイリアス] - パラメーター名のエイリアス。 エイリアスにはスペースや特殊文字を使用できます。
  • [フィールドまたは式] - WHERE 句の述部または条件の左側に使用されるフィールド名または有効な SQL 式。
  • [データ タイプ] - [フィールドまたは式] 列で指定されるフィールドまたは式のデータ タイプ。 [パラメーター タイプ] 値が [範囲] の場合、[データ タイプ] 列の値を [String] に設定することはできません。
    • [Date] - フィールドまたは式のデータ タイプは日付 (日時) になります。
    • [String] - フィールドまたは式のデータ タイプは文字列 (テキスト) になります。
    • [Integer] - フィールドまたは式のデータ タイプは Integer (整数) になります。
    • [Double] - フィールドまたは式のデータ タイプは Double (倍精度浮動小数点数) になります。
  • [開始値] - [範囲] 列のデフォルトの開始値。 この値は、タイム スライダーまたはレンジ スライダーが有効でない場合に使用されます。 [開始値] および [終了値] 列の値が削除され、タイム スライダーまたはレンジ スライダーが無効になっている場合、関連テーブルのすべてのレコードが集約結果の計算に使用されます。 この値は、[パラメーター タイプ] 列が [不連続] に設定されている場合は無視されます。
  • [終了値] - [範囲] パラメーターのデフォルトの終了値。 この値は、タイム スライダーまたはレンジ スライダーが有効でない場合に使用されます。 [開始値] および [終了値] 列の値が削除され、タイム スライダーまたはレンジ スライダーが無効になっている場合、関連テーブルのすべてのレコードが集約結果の計算に使用されます。 この値は、[パラメーター タイプ] 列が [不連続] に設定されている場合は無視されます。
  • [不連続パラメーターの演算子] - [フィールドまたは式] 列の値と、SQL の述部または条件の値との間で使用される比較演算子。
    • [なし] - [パラメーター タイプ][範囲] に設定されている場合は [なし] を選択します。
    • [等しい] - フィールドまたは式と値が等しいかどうかを比較します。
    • [等しくない] - フィールドまたは式が値と等しくないかどうかをテストします。
    • [より大きい] - フィールドまたは式が値より大きいかどうかをテストします。
    • [より小さい] - フィールドまたは式が値より小さいかどうかをテストします。
    • [値を含む] - フィールドまたは式の値がリスト内の任意の値と一致するかどうかを判定します。
  • [デフォルトの不連続値] - [パラメーター タイプ] 値が [不連続] の場合、デフォルト値を入力する必要があります。 [不連続パラメーターの演算子][値を含む] の場合、「VANDALISM,BURGLARY/THEFT」のように、複数の値をカンマで区切って入力できます。
  • [次のパラメーターの演算子] - この演算子と次の演算子の間の論理演算子。 この列は、複数のパラメーター定義が存在する場合にのみ適用されます。
    • [なし] - 追加のパラメーターが存在しない場合は [なし] を選択します。
    • [And] - 2 つの条件を結合し、両方の条件を満たすレコードを選択します。
    • [Or] - 2 つの条件を結合し、少なくとも 1 つの条件を満たすレコードを選択します。
Value Table
一意の識別子フィールド
(オプション)

テーブル内の各行を一意に識別するために使用される一意識別子フィールド

String
シェープ タイプ
(オプション)

クエリ レイヤーのシェープ タイプを指定します。 クエリの結果セットに含まれるレコードのうち、指定したシェープ タイプに一致するレコードだけが出力クエリ レイヤーで使用されます。 デフォルトでは、結果セットの最初のレコードのシェープ タイプが使用されます。 クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。

  • ポイント出力クエリ レイヤーはポイント ジオメトリを使用します。
  • マルチポイント出力クエリ レイヤーはマルチポイント ジオメトリを使用します。
  • ポリゴン出力クエリ レイヤーはポリゴン ジオメトリを使用します。
  • ポリライン出力クエリ レイヤーはポリライン ジオメトリを使用します。
String
空間参照 ID (SRID)
(オプション)

ジオメトリを返すクエリの空間参照 ID (SRID)。 クエリの結果セットに含まれるレコードのうち、指定した SRID 値に一致するレコードだけが出力クエリ レイヤーで使用されます。 デフォルトでは、結果セットの最初のレコードの SRID 値が使用されます。 クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。

String
座標系
(オプション)

出力クエリ レイヤーで使用する座標系。 デフォルトでは、結果セットの最初のレコードの空間参照が使用されます。 クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。

Spatial Reference
座標に M 値を含める
(オプション)

出力レイヤーに距離計測値 (M 値) を含めるかどうかを指定します。

  • オン - レイヤーに M 値が含まれます。
  • オフ - レイヤーに M 値は含まれません。 これがデフォルトです。
Boolean
座標に Z 値を含める
(オプション)

出力レイヤーに標高値 (Z 値) を含めるかどうかを指定します。

  • オン - レイヤーに Z 値が含まれます。
  • オフ - レイヤーに Z 値は含まれません。 これがデフォルトです。
Boolean
範囲
(オプション)

レイヤーの範囲を指定します。 この範囲にはテーブル内のすべてのフィーチャを含める必要があります。

  • [現在の表示範囲] マップ ビュー - 範囲は、アクティブなマップまたはシーンに基づきます。 このオプションは、アクティブなマップが存在する場合にのみ使用できます。
  • [範囲の描画] 直角化して完了 - 範囲は、マップまたはシーンに描画された四角形に基づきます。 このオプションは、プロジェクト ジオデータベースにフィーチャクラスを作成し、レイヤーをマップに追加します。 フィーチャクラスの座標系はマップと同じです。
    注意:

    このオプションは、[環境] ダイアログ ボックスでは使用できません。 範囲データ タイプを使用するツール パラメーターまたはツール ダイアログ ボックスの [環境] タブからのみ使用できます。

    注意:

    編集タブで編集を有効/無効にする編集オプションがオンの場合、範囲を描画するには [編集] リボン タブで編集を有効化する必要があります。

  • [レイヤーの範囲] Layer - 範囲は、アクティブなマップ レイヤーに基づきます。 ドロップダウン リストを使用して使用可能なレイヤーを選択するか、[すべてのレイヤーのデータの範囲] オプションを使用して、ベースマップを除くすべてのアクティブなマップ レイヤーを組み合わせた範囲を取得します。 このオプションは、レイヤーを含むアクティブなマップが存在する場合にのみ使用できます。

    各マップ レイヤーには、次のオプションがあります。

    • [すべてのフィーチャ] すべて選択 - レイヤーのすべてのフィーチャの範囲。
    • [選択フィーチャ]Area from Selected Features - レイヤーの選択フィーチャの範囲。
    • [表示フィーチャ] Extent Indicator - レイヤーの表示フィーチャの範囲。
      注意:

      [選択フィーチャ] Area from Selected Features[表示フィーチャ] Extent Indicator オプションの範囲は、フィーチャ レイヤーでのみ使用できます。

  • [参照] 参照 - 範囲は、既存のデータに基づきます。
  • [クリップボード] 貼り付け - 範囲をクリップボードにコピーしたり、クリップボードから貼り付けたりできます。
    • [範囲をコピー] コピー - 範囲の座標と座標系をクリップボードにコピーします。
    • [範囲を貼り付け] 貼り付け - 範囲の座標と、必要に応じて座標系をクリップボードから貼り付けます。 クリップボードの値に座標系が含まれていない場合、マップの座標系が範囲に使用されます。
    注意:

    範囲の座標は、ArcPy Extent オブジェクトと同じ書式と順序 (x-min、y-min、x-max、y-max、空間参照) を使用して、クリップボードからコピーおよびクリップボードから貼り付けられます。

  • [範囲をリセット] リセット - 範囲はデフォルト値にリセットされます。
  • 手動入力した座標値 - 座標値は数値であり、アクティブなマップの座標系で表示する必要があります。
    注意:

    マップで、入力された座標と異なる表示単位が使用されることがあります。 基本方向 (N、S、E、W) を使用することはできません。 南と西の座標にはマイナス値の記号を使用します。

Extent

arcpy.management.MakeAggregationQueryLayer(target_feature_class, target_join_field, related_table, related_join_field, out_layer, {statistics}, {parameter_definitions}, {oid_fields}, {shape_type}, {srid}, {spatial_reference}, {m_values}, {z_values}, {extent})
名前説明データ タイプ
target_feature_class

エンタープライズ データベースのフィーチャクラスまたは空間テーブル。

Feature Class
target_join_field

結合のキーとなるターゲット フィーチャクラスのフィールド。

Field
related_table

統計の計算に使用するフィールドを含む入力テーブル。 統計情報は out_layer 値に結合されます。

Table; Feature Class
related_join_field

結合のキーとなる値が格納されている、集計テーブル内のフィールド。 集約または要約統計情報も、このフィールドの一意の属性値ごとに個別に計算されます。

Field
out_layer

作成されるクエリ レイヤーの出力名。

Feature Layer
statistics
[[statistic_type, field],...]
(オプション)

属性値を含み、特定の統計の計算に使用される数値フィールドを指定します。 複数の統計とフィールドの組み合わせを指定できます。 すべての統計計算から NULL 値が除外されます。

出力レイヤーには、related_join_field 値の各個別値の合計数 (または頻度) を示す ROW_COUNT フィールドが含まれます。 ROW_COUNT フィールドと COUNT 統計タイプの違いは、COUNT では NULL 値が除外されるのに対し、ROW_COUNT には NULL 値が含まれる点です。

  • COUNT - 統計の計算に含まれる値の数を検出します。 NULL 値以外の値の数がカウントされます。
  • SUM - 指定したフィールドの値が合計されます。
  • AVG - 指定したフィールドの平均が計算されます。
  • MIN - 指定したフィールドのすべてのレコードから最も小さい値を検出します。
  • MAX - 指定したフィールドのすべてのレコードから最も大きい値を検出します。
  • STDDEV - 指定したフィールド内の値の標準偏差が計算されます。
Value Table
parameter_definitions
[[parameter_def_type, name, alias, field_or_expression, data_type, start_value, end_value, operator, default_value, operator_for_next_parameter],...]
(オプション)

1 つ以上のクエリ パラメーターを基準または条件として指定し、これらの基準に一致するレコードを使用して集約結果を計算します。 クエリ パラメーターは、クエリが実行されるときに値が定義される SQL ステートメント変数に似ています。 これにより、出力レイヤーのクエリ フィルターを動的に変更することができます。 パラメーターは、SQL の WHERE 句における述部や条件と見なすことができます。 たとえば、SQL の WHERE 句にある Country_Name = 'Nigeria' は述部と呼ばれ、= は比較演算子、左側の Country_Name はフィールド名、右側の 'Nigeria' は値を表しています。 複数のパラメーターを定義する場合は、それらの間に論理演算子 (AND、OR など) を指定する必要があります。

クエリ レイヤーでのパラメーターの定義の詳細

指定しない場合、関連テーブルのすべてのレコードが集約結果または集計結果の計算に使用されます。

2 つのパラメーター定義タイプは次のとおりです。

次のプロパティが利用できます。

  • パラメーター タイプ - パラメーターのタイプは RANGE または DISCRETE です。
  • 名前 - パラメーター名で、変数名に似ています。 名前にスペースや特殊文字を含めることはできません。 出力クエリ レイヤーが作成され、レイヤー ソース SQL 文がチェックされると、出力クエリ レイヤー ソースを定義する SQL 文に含まれるこの名前の先頭に ::r: (範囲パラメーターの場合) または :: (不連続パラメーターの場合) が付加されます。
  • エイリアス - パラメーター名のエイリアス。 エイリアスにはスペースや特殊文字を使用できます。
  • フィールドまたは式 - WHERE 句の述部または条件の左側に使用されるフィールド名または有効な SQL 式。
  • データ タイプ - フィールドまたは式列で指定されるフィールドまたは式のデータ タイプ。 パラメーター タイプ値が RANGE の場合、データ タイプ列の値を STRING に設定することはできません。
    • DATE - フィールドまたは式のデータ タイプは Date (日時) になります。
    • STRING - フィールドまたは式のデータ タイプは String (テキスト) になります。
    • INTEGER - フィールドまたは式のデータ タイプは Integer (整数) になります。
    • DOUBLE - フィールドまたは式のデータ タイプは Double (倍精度浮動小数点数) になります。
  • 開始値 - RANGE 列のデフォルトの開始値。 この値は、タイム スライダーまたはレンジ スライダーが有効でない場合に使用されます。 開始値 および終了値列の値が削除され、タイム スライダーまたはレンジ スライダーが無効になっている場合、関連テーブルのすべてのレコードが集約結果の計算に使用されます。 この値は、[パラメーター タイプ] 列が DISCRETE に設定されている場合は無視されます。
  • 終了値 - RANGE パラメーターのデフォルトの終了値。 この値は、タイム スライダーまたはレンジ スライダーが有効でない場合に使用されます。 開始値 および終了値列の値が削除され、タイム スライダーまたはレンジ スライダーが無効になっている場合、関連テーブルのすべてのレコードが集約結果の計算に使用されます。 この値は、パラメーター タイプ列が DISCRETE に設定されている場合は無視されます。
  • 不連続パラメーターの演算子 - フィールドまたは式列の値と、SQL の述部または条件の値との間で使用される比較演算子。
    • NONE - パラメーター タイプが RANGE に設定されている場合は NONE を選択します。
    • EQUAL TO - フィールドまたは式と値が等しいかどうかを比較します。
    • NOT EQUAL TO - フィールドまたは式が値と等しくないかどうかをテストします。
    • GREATER THAN - フィールドまたは式が値より大きいかどうかをテストします。
    • LESS THAN - フィールドまたは式が値より小さいかどうかをテストします。
    • INCLUDE VALUES - フィールドまたは式の値がリスト内の任意の値と一致するかどうかを判定します。
  • デフォルトの不連続値 - パラメーター タイプ値が DISCRETE の場合、デフォルト値を入力する必要があります。 不連続パラメーターの演算子が INCLUDE VALUES の場合、「VANDALISM,BURGLARY/THEFT」のように、複数の値をカンマで区切って入力できます。
  • 次のパラメーターの演算子 - この演算子と次の演算子の間の論理演算子。 この列は、複数のパラメーター定義が存在する場合にのみ適用されます。
    • NONE - 追加のパラメーターが存在しない場合は NONE を選択します。
    • AND - 2 つの条件を結合し、両方の条件を満たすレコードを選択します。
    • OR - 2 つの条件を結合し、少なくとも 1 つの条件を満たすレコードを選択します。
Value Table
oid_fields
[oid_fields,...]
(オプション)

テーブル内の各行を一意に識別するために使用される一意識別子フィールド

String
shape_type
(オプション)

クエリ レイヤーのシェープ タイプを指定します。 クエリの結果セットに含まれるレコードのうち、指定したシェープ タイプに一致するレコードだけが出力クエリ レイヤーで使用されます。 デフォルトでは、結果セットの最初のレコードのシェープ タイプが使用されます。 クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。

  • POINT出力クエリ レイヤーはポイント ジオメトリを使用します。
  • MULTIPOINT出力クエリ レイヤーはマルチポイント ジオメトリを使用します。
  • POLYGON出力クエリ レイヤーはポリゴン ジオメトリを使用します。
  • POLYLINE出力クエリ レイヤーはポリライン ジオメトリを使用します。
String
srid
(オプション)

ジオメトリを返すクエリの空間参照 ID (SRID)。 クエリの結果セットに含まれるレコードのうち、指定した SRID 値に一致するレコードだけが出力クエリ レイヤーで使用されます。 デフォルトでは、結果セットの最初のレコードの SRID 値が使用されます。 クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。

String
spatial_reference
(オプション)

出力クエリ レイヤーで使用する座標系。 デフォルトでは、結果セットの最初のレコードの空間参照が使用されます。 クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。

Spatial Reference
m_values
(オプション)

出力レイヤーに距離計測値 (M 値) を含めるかどうかを指定します。

  • INCLUDE_M_VALUESレイヤーに M 値が含まれます。
  • DO_NOT_INCLUDE_M_VALUESレイヤーに M 値は含まれません。 これがデフォルトです。
Boolean
z_values
(オプション)

出力レイヤーに標高値 (Z 値) を含めるかどうかを指定します。

  • INCLUDE_Z_VALUESレイヤーに Z 値が含まれます。
  • DO_NOT_INCLUDE_Z_VALUESレイヤーに Z 値は含まれません。 これがデフォルトです。
Boolean
extent
(オプション)

レイヤーの範囲を指定します。 この範囲にはテーブル内のすべてのフィーチャを含める必要があります。

  • MAXOF - すべての入力データの最大範囲が使用されます。
  • MINOF - すべての入力データに共通する最小領域が使用されます。
  • DISPLAY - 範囲は、表示範囲と同じになります。
  • レイヤー名 - 指定したレイヤーの範囲が使用されます。
  • Extent オブジェクト - 指定したオブジェクトの範囲が使用されます。
  • 座標のスペース区切りの文字列 - 指定した文字列の範囲が使用されます。 座標は、x-min、y-min、x-max、y-max の順序で表されます。
Extent

コードのサンプル

MakeAggregationQueryLayer の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、ポイント フィーチャクラスから地区ごとの総犯罪数を計算し、その結果を警察管区フィーチャクラスに結合する方法を示しています。

import arcpy
arcpy.env.workspace = "C:/data/localhost.sde"
arcpy.management.MakeAggregationQueryLayer(
    "PoliceDistricts", "district", "Crime_locations", "PdDistrict", "SF_Crimes")
MakeAggregationQueryLayer の例 2 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、ポイント フィーチャクラスから地区ごとおよび犯罪タイプごとの総犯罪数を計算し、その結果を警察管区フィーチャクラスに結合する方法を示しています。

import arcpy
arcpy.env.workspace = "C:/data/localhost.sde"
arcpy.management.MakeAggregationQueryLayer(
    "PoliceDistricts", "district", "Crime_locations", "PdDistrict", "SF_Crimes", 
    None, 
    "DISCRETE crime_type # Category STRING # # 'INCLUDE VALUES' 'VANDALISM, BURGLARY/THEFT' NONE")
MakeAggregationQueryLayer の例 3 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、時系列テーブルから総雨量と平均雨量を計算し、その結果を給水地フィーチャクラスに結合する方法を示しています。

import arcpy
arcpy.env.workspace = "C:/data/localhost.sde"
arcpy.management.MakeAggregationQueryLayer(
    "weather_stations", "station_id", "observed_rainfall", "station_id", 
    "Total_Rainfall", [["SUM", "rainfall_inch"], ["MIN", "rainfall_inch"]])
MakeAggregationQueryLayer の例 4 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、時系列テーブルから任意のタイム ウィンドウの総雨量と平均雨量を計算し、その結果を給水地フィーチャクラスに結合する方法を示しています。

import arcpy
arcpy.env.workspace = "C:/data/localhost.sde"
arcpy.management.MakeAggregationQueryLayer(
    "weather_stations", "station_id", "observed_rainfall", "station_id", 
    "Total_Rainfall", [["SUM", "rainfall_inch"], ["MIN", "rainfall_inch"]], 
    "RANGE TimeVar # collection_date DATE 1/1/2020 12/1/2020 NONE # NONE")

関連トピック