Verwenden des summarize-Operators zum Filtern von Ergebnissen
Die Funktionen „arg_max()“ und „arg_min()“ filtern die oberste bzw. unterste Zeile heraus.
arg_max-Funktion
Die folgende Anweisung gibt die neueste Zeile aus der SecurityEvent-Tabelle für den Computer „SQL10.NA.contosohotels.com“ zurück. Mit dem Sternchen (*) in der arg_max-Funktion werden alle Spalten für die Zeile angefordert.
SecurityEvent
| where Computer == "SQL10.na.contosohotels.com"
| summarize arg_max(TimeGenerated,*) by Computer
arg_min-Funktion
In dieser Anweisung wird das älteste Sicherheitsereignis (SecurityEvent) für den Computer „SQL10.NA.contosohotels.com“ als Resultset zurückgegeben.
SecurityEvent
| where Computer == "SQL10.na.contosohotels.com"
| summarize arg_min(TimeGenerated,*) by Computer
Noch einmal die Ergebnispipe
Die Reihenfolge, in der Ergebnisse das Pipezeichen passieren, ist wichtig. Sehen Sie sich die beiden folgenden KQL-Anweisungen an. Wie unterscheiden sich die Resultsets?
Führen Sie jede Abfrage separat aus, um die Ergebnisse anzuzeigen.
// Statement 1
SecurityEvent
| summarize arg_max(TimeGenerated, *) by Account
| where EventID == "4624"
// Statement 2
SecurityEvent
| where EventID == "4624"
| summarize arg_max(TimeGenerated, *) by Account
Die Anweisung 1 enthält Konten, bei denen die letzte Aktivität eine Anmeldung war.
Die SecurityEvent-Tabelle wird zusammengefasst und gibt die neueste Zeile für jedes Konto zurück. Dann werden nur Zeilen zurückgegeben, bei denen die Ereignis-ID (EventID) den Wert 4624 (Anmeldung) hat.
Die Anweisung 2 verfügt über die neueste Anmeldung für Konten, die sich angemeldet haben.
Die SecurityEvent-Tabelle wird nur nach „EventID = 4624“ gefiltert. Anschließend werden diese Ergebnisse für die neueste Anmeldezeile nach Konto zusammengefasst.