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.