Klauzula SQL DISTINCT służy do usuwania zduplikowanych wartości z wyników zapytania. Zapewnia to, że dane wyjściowe pokażą tylko unikalne rekordy dla określonych kolumn.
Przykład: Najpierw to zrobimy tworzyć demonstracyjna baza danych SQL i tabela, na której użyjemy polecenia Distinct Clause.
Zapytanie:
SELECT DISTINCT Department
FROM Employees;
Wyjście:
Składnia:
SELECT DISTINCT column1 column2
FROM table_name
- kolumna1 kolumna2: Nazwy pól tabeli.
- Nazwa_tabeli: Tabela, z której chcemy pobrać rekordy.
Notatka: Jeśli jest używany w wielu kolumnach
DISTINCTzwraca unikalne kombinacje wartości w tych kolumnach.
Przykłady DISTINCT w SQL
Utwórzmy przykładową tabelę i wypełnijmy ją kilkoma zduplikowanymi wpisami. Zobaczymy kilka przykładów użycia słowa kluczowego DISTINCT z przykładową tabelą uczniów.
Przykład 1: Pobierz unikalne nazwy z pola NAZWA.
Zapytanie zwraca tylko unikalne nazwy, eliminując zduplikowane wpisy z tabeli.
Zapytanie:
SELECT DISTINCT NAME FROM students; Wyjście:
Przykład 2: Pobieranie unikalnych kombinacji wielu kolumn
To zapytanie pobiera różne kombinacje NAZWA i WIEK — jeśli dwa wiersze mają tę samą nazwę i wiek, tylko jeden z nich pojawi się w zestawie wyników.
instrukcja JavaScript if
Zapytanie:
SELECT DISTINCT NAME AGE FROM students;Wyjście:
w celu
Przykład 3: Użycie DISTINCT z klauzulą ORDER BY
Możemy połączyć słowo kluczowe DISTINCT z ZAMÓW PRZEZ klauzula do filtrowania unikalnych wartości podczas sortowania zestawu wyników. To zapytanie pobiera unikalne grupy wiekowe z tabeli uczniów i sortuje je w kolejności rosnącej.
Zapytanie:
SELECT DISTINCT AGE FROM students ORDER BY AGE; Wyjście:
Przykład 4: Używanie DISTINCT z funkcjami agregującymi (np. COUNT())
Tutaj sprawdzimy LICZYĆ() funkcję z klauzulą DISTINCT, która poda całkowitą liczbę uczniów za pomocą funkcji COUNT().
Zapytanie:
SELECT COUNT(DISTINCT ROLL_NO) FROM Students ;Wyjście:
Przykład 5: DISTINCT z wartościami NULL
W SQL słowo kluczowe DISTINCT traktuje NULL jako unikalną wartość. Wartość NULL jest traktowana jako odrębna wartość, więc pojawi się tylko raz, jeśli istnieje wiele wartości NULL.
Zapytanie:
INSERT INTO students (ROLL_NO NAME ADDRESS PHONE AGE)
VALUES (13 'John Doe' '123 Unknown Street' '9876543216' NULL);
SELECT DISTINCT AGE FROM students;
Wyjście:
Utwórz quiz