GitHubContribute in GitHub: オンラインでの編集

集計演算子

構文

T | summarize [SummarizeParameters] [[ Column =] Aggregation [, ...]] [ by [ Column =] GroupExpression [, ...]]

引数

  • 列: 結果列のオプションの名前。 デフォルトは、式から派生した名前です。
  • 集約: 引数として列名を使用した、 count() または avg()などの 集約関数 の呼び出し。 集約関数のリストを参照してください。
  • GroupExpression: 入力データを参照することができるスカラー式。 出力には、すべてのグループ式の個別の値と同数のレコードが含まれます。
  • SummarizeParameters: 動作を制御する、 Name = Value 形式のゼロ個以上 (スペース区切り) のパラメーター。 以下のパラメーターがサポートされます。

入力表が空の場合、出力は GroupExpression が使用されているかどうかによって異なります。

  • GroupExpression が指定されていない場合、出力は単一の (空の) 行になります。
  • GroupExpression が指定されている場合、出力には行がありません。

返品

入力行は、 by 式と同じ値を持つグループに配置されます。 次に、指定された集約関数がグループごとに計算され、グループごとに行が生成されます。 結果には、 by 列と、計算された集約ごとに少なくとも 1 つの列が含まれます。 (一部の集約関数は複数の列を返します。)

結果には、 by 値の明確な組み合わせ (ゼロの場合もあります) と同数の行が含まれます。 グループ・キーが指定されていない場合、結果のレコードは 1 つになります。

数値の範囲を集計するには、 bin() を使用して範囲を離散値に減らします。

  • 集約式とグループ化式の両方に任意の式を指定できますが、単純な列名を使用するか、 bin() を数値列に適用する方が効率的です。

集約関数のリスト

関数 説明
引数最大値 () 引数が最大化されている場合に 1 つ以上の式を戻す
引数最小 () 引数が最小化されている場合は、1 つ以上の式を戻します。
平均 () グループ全体の平均値を返します。
avgif () (avgif ()) グループ全体の平均値を戻します (述部あり)
バイナリーすべて (binary_all_and) グループのバイナリー AND を使用して集約値を返します。
バイナリーすべて (binary_all_or) グループのバイナリー OR を使用して集約値を返します。
binary_all_xor グループのバイナリー XOR を使用して集約値を返します。
カウント () グループのカウントを戻します。
カウント () (countif ()) グループの述部を持つカウントを戻します。
dcount () (dcount ()) グループ・エレメントのおおよその個別カウントを戻します。
dcountif () (dcountif ()) グループ・エレメント (述部あり) のおおよその特殊カウントを戻します。
make_list () グループ内のすべての値のリストを返します。
make_list_if () (make_list_if ()) グループ内のすべての値のリストを戻します (述部あり)
make_set () グループ内の個別値のセットを戻します。
make_set_if () (make_set_if ()) グループ内の特殊値のセットを戻します (述部あり)
最大 () グループ全体の最大値を戻します。
最大値 () グループ全体の最大値を戻します (述部あり)
最小 () グループ全体の最小値を返します。
ミニ () グループ全体の最小値を戻します (述部あり)
合計 () グループ内のエレメントの合計を戻します。
要約 () グループ内のエレメントの合計を戻します (述部あり)
すべて実行 (take_any) () グループの空でないランダム値を返します。
take_anyif () (take_anyif ()) グループの空でないランダム値を戻します (述部あり)

集約のデフォルト値

以下の表に、集約のデフォルト値を要約します。

オペレーター デフォルト値
count(), countif(), dcount(), dcountif() 0
make_bag(), make_bag_if(), make_list(), make_list_if(), make_set(), make_set_if() 空の動的配列 ([])
その他すべて null

ヌル値を含むエンティティーに対してこれらの集約を使用すると、ヌル値は無視され、計算には関与しません (以下の例を参照してください)。

この例では、単に events テーブル内のすべてのイベントをカウントします。

events
    | project original_time
    | where original_time > ago(24h)
    | summarize NumEvents=count()

結果

NumEvents
4163038

次の例

この例では、 24hr 期間に分割された過去 24 時間のイベントの総数が返されます。

events
    | project original_time
    | where original_time > ago(24h)
    | summarize NumEvents=count() by HourBucket=bin(original_time, 60m)
    | sort by HourBucket desc
    | take 5

結果

HourBucket NumEvents
2022-06-12 23:00:00.000 8374746
2022-06-12 22:00:00.000 8214746
2022-06-12 21:00:00.000 7374746
2022-06-12 20:00:00.000 9938733
2022-06-12 19:00:00.000 0
2022-06-12 18:00:00.000 1

過去 24 時間について、1 時間間隔ごとに取り込まれたイベントの数を示す表。 表には 2 つの列が含まれます。 EventCount これは 1 時間のイベントのカウントであり、 HourBucket はイベントの集約の時間枠に分割されます。

固有の組み合わせ

表に存在するイベント nameseverity の固有の組み合わせを判別します。 集約関数はなく、グループ化キーのみです。 出力には、これらの結果の列のみが表示されます。

events 
    | project severity, name, original_time
    | where original_time > ago(24h)
    | where severity > 6
    | summarize by name, severity
    | sort by name asc, severity desc
    | take 5

結果

name severity
(Primary) Failover cable OK 10
(Primary) Failover cable Not OK 6
(Primary) Failover message block alloc failed 7
30419 Internet Explorer 8 XSS Attack 8
A fatal alert was generated and sent to the remote endpoint 7

最小タイム・スタンプと最大タイム・スタンプ

events 表内のすべてのイベントの最小タイム・スタンプと最大タイム・スタンプを検索します。 group-by 節がないため、出力には 1 行のみが含まれます。

events 
    | project severity, original_time
    | where original_time > ago(24h)
    | where severity > 6
    | summarize MinTime=min(original_time), MaxTime=max(original_time)

結果

Min Max
1975-06-09 09:21:45 2015-12-24 23:45:00

DISTINCT COUNT

nameごとに行を作成し、取り込まれたイベントの src_ip 個別の数を表示します。

events 
    | project name, severity, original_time, src_ip
    | where original_time > ago(24h)
    | where severity > 6 and isnotempty(name) and isnotempty(src_ip)
    | summarize SrcIpCount=count_distinct(src_ip) by Name=name
    | order by SrcIpCount desc
    | take 5

結果

名前 SrcIpカウント
グループ・ポリシーの処理が失敗しました 385
コンテンツ保護違反 367
Web サーバー適用違反 312
Openfire Jabber サーバー認証バイパス 305
プロトコル・リバース・パス検査の拒否 290