Problem:
Chcesz wyświetlić niezduplikowane rekordy w SQL.
Przykład:
Nasza baza danych zawiera tabelę o nazwie City
z danymi w kolumnach id
, name
i country
.
id | imię | kraj |
---|---|---|
1 | Madryt | Hiszpania |
2 | Barcelona | Hiszpania |
3 | Warszawa | Polska |
4 | Kraków | Polska |
Uzyskajmy nazwy krajów bez duplikatów.
Rozwiązanie:
Użyjemy słowa kluczowego DISTINCT
. Oto zapytanie:
SELECT DISTINCT country FROM City;
Oto wynik zapytania:
kraj |
---|
Hiszpania |
Polska |
Dyskusja:
Jeśli chcesz, aby zapytanie zwracało tylko unikalne wiersze, użyj słowa kluczowego DISTINCT
po SELECT
. DISTINCT
może służyć do pobierania unikalnych wierszy z jednej lub kilku kolumn. Musisz wymienić kolumny po DISTINCT
słowo kluczowe.
Jak to działa pod maską? Kiedy zapytanie jest wykonywane, najpierw wybierany jest cały zestaw danych, a następnie DISTINCT
usuwa wiersze, które są zduplikowane, biorąc pod uwagę wybrane kolumny.
W naszym przykładzie zarówno Hiszpania, jak i Polska występują w tabeli dwukrotnie. Jednak po zastosowaniu słowa kluczowego DISTINCT
, każdy z nich jest zwracany tylko raz.