W pytaniach typu "Ile wierszy wybierze kwerenda?" liczymy wiersze zwrócone w wyniku, czyli rekordy, które faktycznie pojawią się w zbiorze wynikowym po wykonaniu zapytania SELECT.
Poprawna metoda postępowania jest zawsze taka sama:
- Krok 1: odczytaj kwerendę SELECT i ustal, czy zawiera elementy wpływające na liczność wyniku: WHERE, DISTINCT, JOIN, GROUP BY, HAVING, LIMIT.
- Krok 2: przeanalizuj każdy pokazany wiersz tabeli i sprawdź, czy spełnia wszystkie warunki selekcji (najczęściej w klauzuli WHERE). Przy warunkach z AND każdy podwarunek musi być spełniony; przy OR wystarczy spełnienie jednego z nich.
- Krok 3: uwzględnij modyfikatory wyniku:
• DISTINCT usuwa duplikaty całych wierszy (lub wskazanych kolumn), więc wynik może mieć mniej wierszy niż "pasujących rekordów".
• GROUP BY zwraca jeden wiersz na grupę, więc liczba wierszy to liczba utworzonych grup, a nie liczba rekordów wejściowych.
• JOIN może zwielokrotniać wiersze, jeśli relacja nie jest 1:1 (np. 1:N), co często prowadzi do zaskakująco dużych wyników.
W tej konkretnej sytuacji, po zastosowaniu wszystkich warunków i zasad wynikających z użytych klauzul, w zbiorze wynikowym pozostają 2 wiersze, więc taka jest prawidłowa odpowiedź.
Dlaczego pozostałe propozycje są błędne?
- 5 – typowy błąd "niedokładnego filtrowania": część warunków jest pomijana lub traktowana jakby była połączona OR zamiast AND.
- 8 – często wynika z policzenia wszystkich widocznych rekordów w tabeli (albo wszystkich rekordów spełniających tylko jeden z warunków), bez pełnej weryfikacji logiki zapytania.
- 13 – zwykle jest efektem mylenia liczby rekordów w tabeli z liczbą rekordów w wyniku SELECT lub nieuwzględnienia elementów zawężających wynik.
Wskazówka egzaminacyjna: przy liczeniu wyników najlepiej zrobić prostą tabelkę "rekord → spełnia/nie spełnia" i odhaczać podwarunki po kolei. To ogranicza pomyłki przy złożonych warunkach.