集約クエリ レイヤーの作成 (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
範囲
(オプション)

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

  • [デフォルト] - すべての関連する入力の最大範囲に基づく範囲とします。これがデフォルトです。
  • [現在の表示範囲] - 範囲がデータ フレームまたは表示範囲と同じになります。アクティブなマップが存在しない場合、このオプションは使用できません。
  • [以下の指定に一致] - この範囲は、指定された最小および最大範囲値に基づきます。
  • [参照] - 範囲は、既存のデータセットに基づきます。
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 - フィールドまたは式のデータ タイプは日付 (日時) になります。
    • 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")

ライセンス情報

  • Basic: No
  • Standard: No
  • Advanced: Yes

関連トピック