演習 - count 関数を使用してイベントをカウントする

完了

Kusto クエリを使って、データセットを調べ、分析情報を得ることができます。 気象データセットがあり、イベントを比較してこのデータから洞察を得たいということを思い出してください。 ここでは、特定の領域で発生した特定の種類のイベントの数を確認します。

count 関数を使用する

使用しているサンプル データベースには、2007 年の米国の各暴風雨のエントリがあり、合計で約 60,000 件のレコードが含まれます。

これらのイベントを情報のチャンクにグループ化するには、summarize 演算子を使用します。 summarize は、複数の行の値のグループを集計して単一の集計値を形成するすべての関数に使用されます。 たとえば、次のクエリを使用して結果の数をカウントすることで、テーブル全体を集計できます。

クエリを実行する

count 演算子の一般的なクエリと結果のスクリーンショット。

また、集計をグループ化する方法を指定することで、データを同様の種類のイベントのグループにまとめることもできます。 たとえば、州別にイベントをカウントするには、次のように state 別に summarize count するクエリを記述します。 実際、前の文は実際のクエリと非常によく似ています。 グループごとの行数をカウントする、count() という集計関数を使用します。 この関数は、クエリ内で既定の名前 count_ から EventCount に名前を変更した、状態別にグループ化されたイベントの数を示す新しい列を生成します。 新しい列の名前を変更することは、クエリとその結果を読みやすくするために推奨される方法です。

  1. クエリをコピーしてクエリ エディターに貼り付けます。

    クエリを実行する

    StormEvents
    | summarize EventCount = count() by State
    | sort by EventCount
    
  2. クエリを実行するには、クエリ ウィンドウの上にある [実行] ボタンを選ぶか、Shift + Enter キーを押します。

    次の画像のような結果が得られるはずです。

    count 演算子の使用法と結果のスクリーンショット。

dcount()countif() 関数を使用する

前のクエリでは、州ごとのイベント数が返されました。 ただし、イベントをカウントするより高度な方法があります。

  • たとえば、特定の種類のイベントのみをカウントできます。 countif() 関数は、述語が true であるレコードをカウントします。 countif(DamageCrops > 0) を使用するクエリでは、作物の被害が 0 を超えたレコードの数がカウントされます。
  • また、dcount() 関数を使用して、異なるイベントの種類をカウントすることもできます。

次の質問に答えるために、これらのカウント関数と summarize 演算子を使用するクエリを作成しました。

  • 各州で発生した暴風雨の数はいくつですか?
  • 各州で損害を引き起こしたイベントの数はいくつですか?
  • 各州で発生した異なる種類のイベントの数はいくつですか?

summarize 演算子内のすべての要素はコンマで区切られ、同じ列 (この場合は State) でグループ化されていることに注意してください。 summarize 演算子で名前が付かない列は削除されます。 他の列を含める場合は、データを集計する列の後に名前を付けます。

  1. 次のクエリを実行します。

    クエリを実行する

    StormEvents
    | summarize count(),
        EventsWithDamageToCrops = countif(DamageCrops > 0),
        Count = dcount(EventType) by State
    | sort by Count
    

    次の画像のような結果が得られるはずです。

    状態ごとにイベントをカウントする Kusto クエリのスクリーンショット。

  2. 結果の列名に注目してください。 クエリのどの部分が各列に対応していますか。 dcount() 関数によって新しい列が作成され、名前 Count が与えられたことがわかります。 また、この名前をクエリの sort 演算子の列として使用したことがわかります。 テキサス州で発生した暴風雨の種類はいくつですか。

distinct 演算子を使用します

前のクエリでは、このデータの対象期間中にテキサス州で 27 種類の暴風雨の個別の数が返されました。 さらにドリルダウンし、すべての暴風雨の種類の名前を見ると興味深いでしょう。 テキサス州のイベントの種類ごとに一覧を表示するには、特定の列の個別の値を一覧表示する distinct() 演算子を使用します。

  1. 次のクエリを実行します。

    クエリを実行する

    StormEvents
    | where State == "TEXAS"
    | distinct EventType
    | sort by EventType asc
    

    次の画像のような結果が得られるはずです。

    distinct 演算子を使用する Kusto クエリのスクリーンショット。

  2. 結果の一覧を確認します。 驚いた暴風雨の種類はありましたか。