KWALIFIKACJA INF3 - CZERWIEC 2021

PYTANIE NR 17.
Kwerendę SELECT DISTINCT należy zastosować w przypadku, gdy potrzeba wybrać rekordy
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
SELECT DISTINCT służy do usuwania duplikatów z wyniku zapytania: zwraca tylko unikalne wartości (lub unikalne kombinacje wartości wskazanych kolumn). Nie oznacza to sortowania danych ani grupowania agregującego, ani "rekordów występujących w bazie tylko raz".

Pełne wyjaśnienie:

SELECT DISTINCT stosuje się wtedy, gdy w wyniku zapytania mają pojawić się wyłącznie wartości niepowtarzające się dla wskazanej kolumny (albo niepowtarzające się kombinacje wartości, jeśli wybierasz kilka kolumn). Innymi słowy: DISTINCT usuwa duplikaty powstałe w wyniku zapytania, a nie "zmienia dane w bazie".

Odpowiedź "tak, aby w podanej kolumnie nie powtarzały się wartości" jest właściwa, bo dokładnie opisuje cel DISTINCT: eliminację powtórzeń w zwracanym zbiorze wyników.

Dlaczego pozostałe odpowiedzi nie pasują:

  • "występujące w bazie tylko raz" to częste nieporozumienie. DISTINCT nie sprawdza, czy dany rekord jest jedyny w całej tabeli w sensie fizycznego wystąpienia. On jedynie sprawia, że powtarzające się wartości (np. ten sam kraj w wielu rekordach) zostaną zwrócone jednokrotnie w wyniku.
  • "posortowane malejąco lub rosnąco" dotyczy sortowania, które realizuje się przez ORDER BY. DISTINCT nie gwarantuje kolejności wyników.
  • "pogrupowane" wiąże się z GROUP BY, czyli grupowaniem wierszy i zwykle użyciem funkcji agregujących (np. zliczania, sumowania). DISTINCT nie tworzy grup do obliczeń agregatów; tylko usuwa duplikaty.

Wskazówka egzaminacyjna: jeśli w treści zadania pojawia się potrzeba uzyskania listy "unikalnych" wartości (np. unikalnych nazw, kategorii, miast), wówczas myśl o DISTINCT. Jeśli mowa o kolejności – ORDER BY. Jeśli o zliczaniu/sumowaniu w grupach – GROUP BY.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
DISTINCT usuwa duplikaty z wyniku zapytania. Jeśli wybierasz jedną kolumnę, zwróci tylko niepowtarzające się wartości. Jeśli wybierasz kilka kolumn, zwraca unikalne kombinacje tych wartości w wierszach.
Gdy podasz kilka kolumn, DISTINCT nie "odduplikowuje" każdej kolumny osobno. Zwraca wiersze, w których cały zestaw wybranych kolumn jest unikalny. Powtórzenie w jednej kolumnie jest dopuszczalne, jeśli różni się inna kolumna.
GROUP BY służy do grupowania wierszy i zwykle łączy się z agregacjami (np. COUNT, SUM). DISTINCT tylko usuwa duplikaty w wyniku, bez liczenia i bez tworzenia agregatów. To inny cel i inny mechanizm działania.
Nie. DISTINCT nie gwarantuje żadnej kolejności wierszy. Sortowanie wykonuje się przez ORDER BY. Jeśli potrzebujesz zarówno unikalnych wartości, jak i kolejności, użyj jednocześnie DISTINCT oraz ORDER BY.
Najczęściej wtedy, gdy budujesz listy do filtrów i formularzy, np. unikalne kategorie produktów, unikalne miasta dostawy, unikalne role użytkowników. Dzięki temu frontend dostaje krótszą, "odduplikowaną" listę wartości.
Nie. DISTINCT działa tylko na zbiorze zwracanym przez zapytanie, czyli na "widoku" danych w wyniku SELECT. Nie modyfikuje rekordów w tabeli. Usuwanie duplikatów z danych wymaga innych działań (np. czyszczenia danych, kluczy unikalnych).
Jeśli w treści pojawia się "niepowtarzające się/unikalne wartości" – to wskazuje na DISTINCT. Jeśli jest "posortowane rosnąco/malejąco" lub "kolejność" – to wskazuje na ORDER BY. Częsty błąd to mylenie unikalności z kolejnością.
Najczęstsze pomyłki to: utożsamianie DISTINCT z GROUP BY, mylenie z ORDER BY oraz interpretowanie, że DISTINCT wybiera rekordy "występujące w bazie tylko raz". Warto pamiętać: DISTINCT dotyczy wyłącznie eliminacji powtórzeń w wyniku zapytania.
Nie zawsze. DISTINCT może wymagać dodatkowej pracy (np. sortowania lub hashowania), aby znaleźć duplikaty. Używaj go wtedy, gdy unikalność wyniku jest rzeczywiście potrzebna. Wydajność zależy od danych, indeksów i silnika bazy.
Wykonaj dwa zapytania na tej samej kolumnie, np. lista miast klientów. Zwykły SELECT pokaże miasto tyle razy, ile jest rekordów. SELECT DISTINCT pokaże każde miasto maksymalnie raz. To najprostszy test zrozumienia działania DISTINCT.
info

To pytanie poprawnie rozwiązuje 60% zdających egzamin. średnie

Według specjalistów z branży: "SELECT DISTINCT służy do usuwania duplikatów z wyniku zapytania: zwraca tylko unikalne wartości (lub unikalne kombinacje wartości wskazanych kolumn)."

Źródła:

  • PostgreSQL Documentation: SELECT, sekcja DISTINCT — https://www.postgresql.org/docs/current/sql-select.html (dostęp: 2026-03-01)
  • MySQL 8.0 Reference Manual: SELECT Statement, DISTINCT — https://dev.mysql.com/doc/refman/8.0/en/select.html (dostęp: 2026-03-01)
  • Microsoft Learn: SELECT DISTINCT (Transact-SQL) — https://learn.microsoft.com/en-us/sql/t-sql/queries/select-distinct-transact-sql (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja DBMS (MySQL/PostgreSQL/SQL Server) – sekcja DISTINCT
  • Ćwiczenia: porównanie wyników SELECT vs SELECT DISTINCT na tej samej tabeli
  • Materiały do INF.3: podstawy SQL, sortowanie i agregacje

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego