Przejdź do treści
Wróć do kursuDane i QA / Lekcja 9 z 10

Lekcja 9 / raportowanie

Raporty: COUNT, GROUP BY, HAVING i CASE WHEN

Przejdziesz od listy rekordów do prostego raportu. To moment, w którym SQL zaczyna odpowiadać nie tylko „które rekordy?”, ale też „ile ich jest i które grupy wymagają uwagi?”.

Sytuacja z pracy

Product manager pyta: „Ile zgłoszeń mamy w każdym statusie i które statusy wymagają szybkiej uwagi?”. Nie chcesz wysyłać surowej listy zgłoszeń. Chcesz przygotować mały raport.

Dane startowe

idstatusseverity
1openhigh
2openmedium
3closedlow
4in_reviewhigh

Nowe pojęcia

COUNT(*)
Liczy rekordy w grupie.
GROUP BY
Zbiera rekordy według wspólnej wartości, np. statusu.
HAVING
Filtruje grupy po policzeniu.
CASE WHEN
Dodaje własną etykietę na podstawie warunku.

Zapytanie SQL

SELECT
  status,
  COUNT(*) AS reports_count,
  CASE
    WHEN COUNT(*) >= 2 THEN 'high attention'
    ELSE 'normal'
  END AS risk_label
FROM bug_reports
GROUP BY status;

Wynik

statusreports_countrisk_label
open2high attention
closed1normal
in_review1normal

HAVING na małym przykładzie

Jeśli chcesz pokazać tylko grupy z co najmniej dwoma zgłoszeniami, używasz HAVING.

SELECT status, COUNT(*) AS reports_count
FROM bug_reports
GROUP BY status
HAVING COUNT(*) >= 2;

Co to znaczy dla QA?

Raport nie zastępuje analizy pojedynczych rekordów, ale pomaga ustalić priorytet. Jeśli status open ma najwięcej zgłoszeń, możesz zacząć od niego i dopiero potem wejść w szczegóły.

Mini-zadanie

Napisz zapytanie, które liczy zgłoszenia po statusie bez CASE WHEN.

Ćwiczenie praktyczne

Dodaj etykietę high attention, jeśli liczba zgłoszeń dla statusu jest większa lub równa 2. Potem napisz jedno zdanie, co taka etykieta daje osobie nietechnicznej.

Quiz

Co robi COUNT(*)?

Liczy rekordy.

Po co jest GROUP BY?

Żeby policzyć rekordy osobno dla każdej grupy, np. każdego statusu.

Czym różni się WHERE od HAVING?

WHERE filtruje rekordy przed grupowaniem, HAVING filtruje grupy po policzeniu.

Po co CASE WHEN?

Żeby dodać własną etykietę lub kategorię na podstawie warunku.

Co dalej?

Masz już wszystkie klocki: czytanie danych, filtrowanie, NULL, sortowanie, JOIN-y i raporty. W finale połączysz je w mały audyt checkoutu.

Ty wybierasz, co zapamiętuję.

Niezbędne cookies obsługują konto i zapis prób. Jeśli chcesz, możesz włączyć analitykę publicznych stron i pamięć zaproszenia do newslettera. Sam newsletter wymaga osobnego zapisu. Szczegóły w polityce prywatności.

List z warsztatu

Podeślę Ci
coś ciekawego.

Co jakiś czas podeślę Ci nowe materiały o IT i dam znać o kursach. Jeśli masz ochotę, zostaw swój e-mail.

Zapis aktywuje się dopiero po potwierdzeniu adresu. Bezpłatnie, bez obowiązku zakupu. Konto kursanta ma osobne zgody.