DISTINCT w SQL

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

DISTINCT to klauzula używana w instrukcji SELECT, która powoduje zwrócenie tylko unikalnych wierszy wyniku. Oznacza to, że z rezultatu zapytania usuwane są duplikaty.

Składnia

SELECT DISTINCT kolumna
FROM tabela;

Przykład:

SELECT DISTINCT miasto
FROM klienci;

Zapytanie zwróci listę miast występujących w tabeli klienci, ale każde miasto pojawi się tylko raz, nawet jeśli wielu klientów pochodzi z tego samego miasta.

DISTINCT dla wielu kolumn

DISTINCT może dotyczyć więcej niż jednej kolumny:

SELECT DISTINCT imie, nazwisko
FROM uczniowie;

W takim przypadku unikalność jest sprawdzana dla całej kombinacji kolumn. Jeśli dwie osoby mają takie samo imię i nazwisko, zostanie zwrócony tylko jeden taki zestaw.

Czego DISTINCT nie robi?

DISTINCT nie służy do:

  • sortowania wyników — do tego służy ORDER BY,
  • filtrowania według warunku — do tego służy WHERE,
  • grupowania rekordów — do tego służy GROUP BY.

Przykład porównawczy

SELECT miasto FROM klienci;

Może zwrócić:

Warszawa
Kraków
Warszawa
Gdańsk

Natomiast:

SELECT DISTINCT miasto FROM klienci;

zwróci:

Warszawa
Kraków
Gdańsk

Ważne na egzaminie

Jeśli w pytaniu pojawia się SELECT DISTINCT, poprawna interpretacja brzmi: wynik nie będzie zawierał duplikatów.