Ćwiczenie — zlicz zdarzenia przy użyciu funkcji count

Ukończone

Możesz użyć zapytania Kusto, aby eksplorować zestawy danych i uzyskiwać szczegółowe informacje. Pamiętaj, że mamy zestaw danych meteorologicznych i chcemy porównać zdarzenia w celu uzyskania szczegółowych informacji z tych danych. W tym miejscu dowiesz się, ile z określonego typu zdarzenia miało miejsce w określonym obszarze.

Korzystanie z funkcji count

Przykładowa baza danych, z których korzystamy, zawiera wpis dla każdego zdarzenia storm w Stanach Zjednoczonych w 2007 r. dla łącznie około 60 tysięcy rekordów.

Aby zgrupować te zdarzenia w fragmenty informacji, użyjesz summarize operatora . summarize jest używany dla wszystkich funkcji, które agregują grupy wartości wielu wierszy w celu utworzenia pojedynczej wartości podsumowania. Możesz na przykład podsumować całą tabelę, licząc liczbę wyników przy użyciu następującego zapytania:

Uruchamianie zapytania

Screenshot of count operator general query and results.

Możesz również podsumować dane w grupach podobnych typów zdarzeń, określając sposób grupowania agregacji. Na przykład aby zliczyć zdarzenia według stanu, napiszesz zapytanie do elementu summarizecount według state. W rzeczywistości poprzednie zdanie jest bardzo podobne do rzeczywistego zapytania. Użyjesz funkcji agregacji o nazwie count(), która zlicza liczbę wierszy według grupy. Ta funkcja generuje nową kolumnę, która daje liczbę zdarzeń pogrupowanych według stanu, których nazwa została zmieniona w zapytaniu z domyślnej nazwy count_ na EventCount. Zmiana nazw nowych kolumn jest zalecaną praktyką, aby zapytania i ich wyniki mogły być bardziej czytelne.

  1. Skopiuj i wklej zapytanie do edytora zapytań.

    Uruchamianie zapytania

    StormEvents
    | summarize EventCount = count() by State
    | sort by EventCount
    
  2. Uruchom zapytanie, wybierając przycisk Uruchom nad oknem zapytania lub naciskając klawisze Shift+Enter

    Powinny zostać wyświetlone wyniki, które wyglądają jak na poniższej ilustracji:

    Screenshot of count operator usage and results.

dcount() Korzystanie z funkcji i countif()

Poprzednie zapytanie zwróciło liczbę zdarzeń na stan. Istnieją jednak bardziej zaawansowane sposoby liczenia zdarzeń.

  • Można na przykład zliczyć tylko niektóre typy zdarzeń. Funkcja countif() zlicza rekordy, dla których predykat ma wartość true. Użycie zapytania countif(DamageCrops > 0) zlicza liczbę rekordów, dla których uszkodzenie upraw było większe niż zero.
  • Można również liczyć różne typy zdarzeń przy użyciu dcount() funkcji .

Utworzyliśmy zapytanie, które używa summarize operatora z tymi funkcjami zliczanymi, aby odpowiedzieć na następujące pytania:

  • Ile zdarzeń burzowych wystąpiło w każdym stanie?
  • Ile zdarzeń w każdym stanie spowodowało uszkodzenie?
  • Ile różnych typów zdarzeń wystąpiło w każdym stanie?

Zwróć uwagę, że wszystkie elementy operatora sumowania są rozdzielone przecinkami i są pogrupowane według tej samej kolumny, w tym przypadku State. Kolumny, które nie są nazwane w operatorze summarize , są porzucane. Jeśli chcesz uwzględnić inne kolumny, nadaj im nazwę po kolumnie, w której podsumowano dane.

  1. Uruchom poniższe zapytanie:

    Uruchamianie zapytania

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

    Powinny zostać wyświetlone wyniki, które wyglądają jak na poniższej ilustracji:

    Screenshot of Kusto query that counts events by state.

  2. Zwróć uwagę na nazwy kolumn w wynikach. Która część zapytania odpowiada każdej kolumnie? Widać, że dcount() funkcja utworzyła nową kolumnę i nadała jej nazwę Liczba. Zauważysz również, że ta nazwa została użyta jako kolumna operatora sort w zapytaniu. Ile różnych typów burz miało miejsce w Teksasie?

distinct Korzystanie z operatora

Poprzednie zapytanie zwróciło odrębną liczbę 27 różnych typów burz w Teksasie w okresie objętym tym danymi. Warto dokładniej przejść do szczegółów i zobaczyć nazwy wszystkich tych typów burz. Aby wyświetlić listę każdego innego typu zdarzenia w Teksasie, użyj distinct() operatora , który zawiera listę unikatowych wartości określonej kolumny.

  1. Uruchom poniższe zapytanie:

    Uruchamianie zapytania

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

    Powinny zostać wyświetlone wyniki, które wyglądają jak na poniższej ilustracji:

    Screenshot of Kusto query using the distinct operator.

  2. Przyjrzyj się wynikowej liście. Czy którykolwiek z typów burzy cię zaskoczył?