Övning – Räkna händelser med funktionen count

Slutförd

Du kan använda en Kusto-fråga för att utforska datauppsättningar och få insikter. Kom ihåg att vi har en meteorologisk datamängd och vill jämföra händelser för att få insikter från dessa data. Här får du reda på hur många av en viss typ av händelse som inträffade i ett visst område.

Använda count-funktionen

Exempeldatabasen som vi använder har en post för varje stormhändelse i USA 2007, för totalt cirka 60 000 poster.

Om du vill gruppera dessa händelser i informationssegment använder du operatorn summarize . summarize används för alla funktioner som sammanställer grupper av värden på flera rader för att bilda ett enda sammanfattningsvärde. Du kan sammanfatta hela tabellen, till exempel genom att räkna antalet resultat med hjälp av följande fråga:

Kör frågan

Skärmbild av allmän fråga och resultat för count operator.

Du kan också sammanfatta data i grupper med liknande typer av händelser genom att ange hur du vill gruppera aggregeringen. Om du till exempel vill räkna händelser efter tillstånd kan du skriva en fråga till summarize count av state. I själva verket liknar den föregående meningen den faktiska frågan. Du använder aggregeringsfunktionen med namnet count(), som räknar antalet rader per grupp. Den här funktionen genererar en ny kolumn som ger antalet händelser grupperade efter tillstånd, som vi har bytt namn på i frågan från standardnamnet count_ till EventCount. Att byta namn på nya kolumner är en rekommenderad metod för att göra frågor och deras resultat mer läsbara.

  1. Kopiera och klistra in frågan i frågeredigeraren.

    Kör frågan

    StormEvents
    | summarize EventCount = count() by State
    | sort by EventCount
    
  2. Kör frågan genom att antingen välja knappen Kör ovanför frågefönstret eller genom att trycka på Skift+Retur.

    Du bör få resultat som ser ut som följande bild:

    Skärmbild av antal operatoranvändning och resultat.

dcount() Använda funktionerna och countif()

Föregående fråga returnerade antalet händelser per tillstånd. Det finns dock mer avancerade sätt att räkna händelser.

  • Du kan till exempel bara räkna vissa typer av händelser. Funktionen countif() räknar poster som ett predikat är sant för. Frågan som använder countif(DamageCrops > 0) skulle räkna antalet poster för vilka skadan på grödorna var större än noll.
  • Du kan också räkna olika typer av händelser med hjälp dcount() av funktionen .

Vi har konstruerat en fråga som använder operatorn summarize med dessa count-funktioner för att besvara följande frågor:

  • Hur många stormhändelser inträffade i varje tillstånd?
  • Hur många händelser i varje tillstånd orsakade skada?
  • Hur många olika typer av händelser inträffade i varje tillstånd?

Observera att alla element i sammanfattningsoperatorn avgränsas med kommatecken och grupperas efter samma kolumn, i det här fallet Tillstånd. Kolumner som inte namnges i operatorn summarize tas bort. Om du vill inkludera andra kolumner namnger du dem efter kolumnen där data sammanfattas.

  1. Kör följande fråga:

    Kör frågan

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

    Du bör få resultat som ser ut som följande bild:

    Skärmbild av Kusto-fråga som räknar händelser efter tillstånd.

  2. Lägg märke till kolumnnamnen i resultatet. Vilken del av frågan motsvarar varje kolumn? Du kan se att dcount() funktionen skapade en ny kolumn och gav den namnet Count. Du kommer också att märka att du använde det här namnet som kolumn för operatorn sort i frågan. Hur många olika typer av stormar inträffade i Texas?

Använda operatorn distinct

Den föregående frågan returnerade ett distinkt antal på 27 olika typer av stormar i Texas under den tidsperiod som omfattas av dessa data. Det skulle vara intressant att ytterligare öka detaljnivån och se namnen på alla dessa typer av stormar. Om du vill se en lista över varje händelsetyp i Texas använder du operatorn distinct() , som visar de distinkta värdena för en viss kolumn.

  1. Kör följande fråga:

    Kör frågan

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

    Du bör få resultat som ser ut som följande bild:

    Skärmbild av Kusto-fråga med den distinkta operatorn.

  2. Ta en titt på den resulterande listan. Överraskade någon av stormtyperna dig?