Übung: Zählen von Ereignissen mithilfe der „Count“-Funktion
Sie können eine Kusto-Abfrage verwenden, um Datasets zu erkunden und Erkenntnisse zu gewinnen. Erinnern Sie sich daran, dass wir über ein meteorologisches Dataset verfügen und Ereignisse vergleichen möchten, um aus diesen Daten Erkenntnisse zu gewinnen. Hier erfahren Sie, wie viele Ereignisse eines bestimmten Typs in einem bestimmten Gebiet aufgetreten sind.
Verwenden der count
-Funktion
Die von uns verwendete Beispieldatenbank weist einen Eintrag für jedes Sturmereignis in den USA im Jahr 2007 auf, das ergibt in der Summe rund 60 Tausend Datensätze.
Um diese Ereignisse in Informationsblöcke zu gruppieren, verwenden Sie den summarize
-Operator. summarize
wird für alle Funktionen verwendet, die Gruppen von Werten aus mehreren Zeilen aggregieren, um einen einzelnen Zusammenfassungswert zu bilden. Sie können beispielsweise die gesamte Tabelle zusammenfassen, indem Sie die Anzahl der Ergebnisse mithilfe der folgenden Abfrage zählen:
Sie können außerdem Daten in Gruppen ähnlicher Ereignistypen zusammenfassen, indem Sie angeben, wie Sie die Aggregation gruppieren möchten. Wenn Sie beispielsweise die Ereignisse nach Status zählen möchten, können Sie eine Abfrage so schreiben: summarize
count
nach state
. Tatsächlich ist der vorhergehende Satz der eigentlichen Abfrage sehr ähnlich. Sie verwenden die Aggregationsfunktion namens count()
, die die Anzahl der Zeilen nach Gruppe zählt. Diese Funktion generiert eine neue Spalte, die die Anzahl der Ereignisse gruppiert nach Bundesstaat angibt, die wir innerhalb der Abfrage von count_ (Standardwert) in EventCount umbenannt haben. Es wird empfohlen, neue Spalten umzubenennen, damit die Abfragen und ihre Ergebnisse besser lesbar sind.
Kopieren Sie die Abfrage, und fügen Sie sie in den Abfrage-Editor ein.
StormEvents | summarize EventCount = count() by State | sort by EventCount
Führen Sie die Abfrage aus, indem Sie entweder die Schaltfläche Ausführen über dem Abfragefenster auswählen oder UMSCHALT+EINGABE drücken.
Sie sollten Ergebnisse erhalten, die wie in der folgenden Abbildung aussehen:
Verwenden der Funktionen dcount()
und countif()
Die vorherige Abfrage hat die Anzahl der Ereignisse pro Bundesstaat zurückgegeben. Es gibt aber raffiniertere Möglichkeiten zum Zählen von Ereignissen.
- Beispielsweise könnten Sie nur bestimmte Arten von Ereignissen zählen. Die
countif()
-Funktion zählt Datensätze, für die ein Prädikat wahr ist. Mitcountif(DamageCrops > 0)
würde die Abfrage die Anzahl der Datensätze zählen, in denen die Ernteschäden größer als null sind. - Darüber hinaus können Sie verschiedene Arten von Ereignissen mithilfe der
dcount()
-Funktion zählen.
Wir haben eine Abfrage erstellt, die den summarize
-Operator mit diesen Zählfunktionen verwendet, um die folgenden Fragen zu beantworten:
- Wie viele Sturmereignisse sind in jedem Bundesstaat aufgetreten?
- Wie viele Ereignisse in jedem Bundesstaat haben Schäden verursacht?
- Wie viele verschiedene Arten von Ereignissen sind in jedem Bundesstaat aufgetreten?
Beachten Sie, dass alle Elemente innerhalb des Zusammenfassungsoperators durch Kommas getrennt sind und nach der gleichen Spalte gruppiert werden, in diesem Fall State. Spalten, die nicht im summarize
-Operator genannt sind, werden verworfen. Wenn Sie weitere Spalten einschließen möchten, führen Sie sie nach der Spalte an, in der Daten zusammengefasst werden.
Führen Sie die folgende Abfrage aus:
StormEvents | summarize count(), EventsWithDamageToCrops = countif(DamageCrops > 0), Count = dcount(EventType) by State | sort by Count
Sie sollten Ergebnisse erhalten, die wie in der folgenden Abbildung aussehen:
Beachten Sie die Spaltennamen in den Ergebnissen. Welcher Teil der Abfrage entspricht den einzelnen Spalten? Sie sehen, dass die Funktion
dcount()
eine neue Spalte mit dem Namen Count erstellt hat. Sie werden außerdem bemerken, dass Sie diesen Namen als Spalte für densort
-Operator in der Abfrage verwendet haben. Wie viele verschiedene Arten von Stürmen waren in Texas aufgetreten?
Verwenden Sie den distinct
-Operator
Die vorherige Abfrage hat eine eindeutige Anzahl von 27 verschiedenen Arten von Stürmen in Texas für den Zeitraum zurückgegeben, der von diesen Daten abgedeckt wird. Es wäre interessant, das weiter im Detail zu untersuchen und die Namen all dieser verschiedenen Sturmarten anzuzeigen. Wenn Sie eine Liste aller verschiedenen Ereignistypen in Texas anzeigen möchten, verwenden Sie den distinct()
-Operator, der die distinkten Werte einer bestimmten Spalte auflistet.
Führen Sie die folgende Abfrage aus:
StormEvents | where State == "TEXAS" | distinct EventType | sort by EventType asc
Sie sollten Ergebnisse erhalten, die wie in der folgenden Abbildung aussehen:
Sehen Sie sich die resultierende Liste an. Hat einer dieser Sturmtypen Sie überrascht?