Strona główna › Pytania INF.03 › Pytanie 2614
INF.03 · pytanie #2614
SELECT count(*) FROM Uczniowie WHERE srednia = 5;Wynikiem uruchomienia przedstawionego zapytania SQL jest:
- AŚrednia ocen wszystkich uczniów.
- BLiczba wszystkich uczniów.
- CLiczba uczniów, których średnia ocen wynosi 5.
- DSuma ocen uczniów, których średnia ocen wynosi 5.
Poprawna odpowiedź: C. Liczba uczniów, których średnia ocen wynosi 5.
Kliknij odpowiedź, którą uważasz za poprawną.
Wyjaśnienie
Poprawnie – to zapytanie zwraca liczbę uczniów, których kolumna „srednia” ma wartość równą dokładnie 5. Funkcja agregująca COUNT(*) w SQL nie liczy sumy ani średniej, tylko po prostu zlicza wiersze spełniające warunek w klauzuli WHERE. W tym przypadku tabela Uczniowie jest filtrowana warunkiem srednia = 5, więc do liczenia trafiają wyłącznie rekordy uczniów, którzy mają średnią ocen równą 5. Dopiero na takim przefiltrowanym zbiorze wykonywany jest COUNT(*), który zwraca jedną liczbę – ile takich rekordów istnieje. Moim zdaniem to jedno z najczęściej używanych połączeń: WHERE + COUNT(*), bo w praktyce non stop chcemy wiedzieć „ile jest elementów spełniających warunek”. W raportach, panelach administracyjnych, dashboardach – np. ile jest klientów z określonym statusem, ilu użytkowników ma aktywne konto, ilu pracowników ma premię powyżej jakiegoś progu itd. Warto też zauważyć, że COUNT(*) liczy wszystkie wiersze, niezależnie od tego, czy jakieś inne kolumny są NULL, a kluczowe jest tylko to, że warunek WHERE jest spełniony. Dobrą praktyką jest zawsze dokładne określanie warunku filtrowania, bo drobna zmiana, np. srednia >= 5 zamiast srednia = 5, całkowicie zmienia znaczenie zapytania. W projektowaniu baz danych i zapytań SQL takie precyzyjne myślenie o warunkach i funkcjach agregujących jest absolutną podstawą profesjonalnej pracy z danymi.
🤖 Wyjaśnienie generowane przez AI – weryfikuj w oficjalnych źródłach.