1. Learn
  2. /
  3. Cursuri
  4. /
  5. Analiza seriilor de timp în SQL Server

Connected

exercițiu

Calcularea agregatelor filtrate

Dacă vrem să numărăm aparițiile unui eveniment în funcție de anumite criterii de filtrare, putem folosi funcții de agregare precum SUM(), MIN() și MAX(), împreună cu expresii CASE. De exemplu, SUM(CASE WHEN ir.IncidentTypeID = 1 THEN 1 ELSE 0 END) returnează numărul de incidente asociate cu tipul de incident 1. Dacă incluzi câte o instrucțiune SUM() pentru fiecare tip de incident, ai pivotat setul de date după ID-ul tipului de incident.

În acest scenariu, conducerea vrea să știe, pentru fiecare tip de incident, câte zile au fost „zile cu incidente majore" și câte au fost „zile cu incidente minore". O zi cu incidente majore este definită ca având mai mult de 5 apariții ale aceluiași tip de incident în aceeași zi, iar o zi cu incidente minore are între 1 și 5 apariții.

Instrucțiuni

100 XP
  • Completează o expresie CASE care să îți permită să folosești funcția SUM() pentru a calcula numărul de zile cu incidente majore și zile cu incidente minore.
  • În expresia CASE, returnează 1 dacă criteriul de filtrare corespunzător este îndeplinit și 0 în caz contrar.
  • Asigură-te că specifici aliasul atunci când faci referire la o coloană, de exemplu ir.IncidentDate sau it.IncidentType!