Klauzule SQL DISTINCT se používá k odstranění duplicitních hodnot z výsledků dotazu. Zajišťuje, že výstup zobrazuje pouze jedinečné záznamy pro zadaný sloupec (sloupce).
Příklad: Nejprve budeme vytvořit ukázkovou SQL databázi a tabulku, na které použijeme příkaz Distinct Clause.
Dotaz:
SELECT DISTINCT Department
FROM Employees;
výstup:
Syntax:
SELECT DISTINCT column1 column2
FROM table_name
- sloupec1 sloupec2: Názvy polí tabulky.
- Table_name: Tabulka, odkud chceme načíst záznamy.
Poznámka: Při použití na více sloupcích
DISTINCTvrátí jedinečné kombinace hodnot v těchto sloupcích.
Příklady DISTINCT v SQL
Vytvoříme vzorovou tabulku a naplníme ji několika duplicitními položkami. Uvidíme několik příkladů použití klíčového slova DISTINCT s ukázkovou tabulkou studentů.
Příklad 1: Načtení jedinečných jmen z pole NAME.
Dotaz vrací pouze jedinečné názvy, čímž se z tabulky vyloučí duplicitní položky.
Dotaz:
SELECT DISTINCT NAME FROM students; výstup:
Příklad 2: Načítání jedinečných kombinací více sloupců
Tento dotaz načte odlišné kombinace JMÉNO a VĚK — pokud mají dva řádky stejný název a věk, ve výsledkové sadě se objeví pouze jeden z nich.
Dotaz:
SELECT DISTINCT NAME AGE FROM students;výstup:
fronta a prioritní fronta v Javě
Příklad 3: Použití DISTINCT s klauzulí ORDER BY
Můžeme kombinovat klíčové slovo DISTINCT s OBJEDNAT PODLE klauzule pro filtrování jedinečných hodnot při řazení sady výsledků. Tento dotaz načte jedinečný věk z tabulky studentů a seřadí je vzestupně.
Dotaz:
SELECT DISTINCT AGE FROM students ORDER BY AGE; výstup:
Příklad 4: Použití DISTINCT s agregačními funkcemi (např. COUNT())
Zde zkontrolujeme POČÍTAT() funkce s klauzulí DISTINCT, která udává celkový počet studentů pomocí funkce COUNT().
Dotaz:
SELECT COUNT(DISTINCT ROLL_NO) FROM Students ;výstup:
Příklad 5: DISTINCT s hodnotami NULL
V SQL klíčové slovo DISTINCT považuje hodnotu NULL za jedinečnou hodnotu. Hodnota NULL je považována za odlišnou hodnotu, takže se zobrazí pouze jednou, pokud existuje více hodnot NULL.
Dotaz:
INSERT INTO students (ROLL_NO NAME ADDRESS PHONE AGE)
VALUES (13 'John Doe' '123 Unknown Street' '9876543216' NULL);
SELECT DISTINCT AGE FROM students;
výstup:
Vytvořit kvíz