Zapytanie SQL ma postać:
SELECT COUNT(DISTINCT wykonawca) FROM muzyka;
Kluczowe są tu dwa elementy:
- COUNT(...) – funkcja agregująca, która zwraca jedną liczbę będącą wynikiem zliczania.
- DISTINCT – nakazuje traktować powtórzenia tej samej wartości jako jedną, czyli zliczać tylko wartości unikalne.
W praktyce oznacza to: "policz, ilu jest różnych wykonawców w tabeli". Nie liczymy więc liczby wierszy, tylko liczbę unikalnych wpisów w kolumnie "wykonawca".
W przedstawionej tabeli są 4 rekordy, ale jeden wykonawca pojawia się więcej niż raz. Po wypisaniu wartości z kolumny "wykonawca" i usunięciu powtórzeń zostają 3 różne wartości. Dlatego poprawnym wynikiem jest 3.
Dlaczego pozostałe odpowiedzi są błędne?
- "1" byłoby poprawne tylko wtedy, gdyby wszystkie rekordy miały tego samego wykonawcę.
- "4" odpowiadałoby zliczeniu wszystkich wierszy (jak przy COUNT(*) lub COUNT(ID) bez DISTINCT), a nie liczbie różnych wykonawców.
Wskazówka egzaminacyjna: gdy widzisz COUNT(DISTINCT kolumna), zawsze najpierw odpowiedz sobie na pytanie: "ile jest unikalnych wartości w tej kolumnie?", niezależnie od liczby rekordów.