演習 - count 関数を使用してイベントをカウントする
Kusto クエリを使って、データセットを調べ、分析情報を得ることができます。 気象データセットがあり、イベントを比較してこのデータから洞察を得たいということを思い出してください。 ここでは、特定の領域で発生した特定の種類のイベントの数を確認します。
count
関数を使用する
使用しているサンプル データベースには、2007 年の米国の各暴風雨のエントリがあり、合計で約 60,000 件のレコードが含まれます。
これらのイベントを情報のチャンクにグループ化するには、summarize
演算子を使用します。 summarize
は、複数の行の値のグループを集計して単一の集計値を形成するすべての関数に使用されます。 たとえば、次のクエリを使用して結果の数をカウントすることで、テーブル全体を集計できます。
また、集計をグループ化する方法を指定することで、データを同様の種類のイベントのグループにまとめることもできます。 たとえば、州別にイベントをカウントするには、次のように state
別に summarize
count
するクエリを記述します。 実際、前の文は実際のクエリと非常によく似ています。 グループごとの行数をカウントする、count()
という集計関数を使用します。 この関数は、クエリ内で既定の名前 count_ から EventCount に名前を変更した、状態別にグループ化されたイベントの数を示す新しい列を生成します。 新しい列の名前を変更することは、クエリとその結果を読みやすくするために推奨される方法です。
クエリをコピーしてクエリ エディターに貼り付けます。
StormEvents | summarize EventCount = count() by State | sort by EventCount
クエリを実行するには、クエリ ウィンドウの上にある [実行] ボタンを選ぶか、Shift + Enter キーを押します。
次の画像のような結果が得られるはずです。
dcount()
と countif()
関数を使用する
前のクエリでは、州ごとのイベント数が返されました。 ただし、イベントをカウントするより高度な方法があります。
- たとえば、特定の種類のイベントのみをカウントできます。
countif()
関数は、述語が true であるレコードをカウントします。countif(DamageCrops > 0)
を使用するクエリでは、作物の被害が 0 を超えたレコードの数がカウントされます。 - また、
dcount()
関数を使用して、異なるイベントの種類をカウントすることもできます。
次の質問に答えるために、これらのカウント関数と summarize
演算子を使用するクエリを作成しました。
- 各州で発生した暴風雨の数はいくつですか?
- 各州で損害を引き起こしたイベントの数はいくつですか?
- 各州で発生した異なる種類のイベントの数はいくつですか?
summarize 演算子内のすべての要素はコンマで区切られ、同じ列 (この場合は State) でグループ化されていることに注意してください。 summarize
演算子で名前が付かない列は削除されます。 他の列を含める場合は、データを集計する列の後に名前を付けます。
次のクエリを実行します。
StormEvents | summarize count(), EventsWithDamageToCrops = countif(DamageCrops > 0), Count = dcount(EventType) by State | sort by Count
次の画像のような結果が得られるはずです。
結果の列名に注目してください。 クエリのどの部分が各列に対応していますか。
dcount()
関数によって新しい列が作成され、名前 Count が与えられたことがわかります。 また、この名前をクエリのsort
演算子の列として使用したことがわかります。 テキサス州で発生した暴風雨の種類はいくつですか。
distinct
演算子を使用します
前のクエリでは、このデータの対象期間中にテキサス州で 27 種類の暴風雨の個別の数が返されました。 さらにドリルダウンし、すべての暴風雨の種類の名前を見ると興味深いでしょう。 テキサス州のイベントの種類ごとに一覧を表示するには、特定の列の個別の値を一覧表示する distinct()
演算子を使用します。
次のクエリを実行します。
StormEvents | where State == "TEXAS" | distinct EventType | sort by EventType asc
次の画像のような結果が得られるはずです。
結果の一覧を確認します。 驚いた暴風雨の種類はありましたか。