Problém:
Rádi byste ze sady výsledků dotazu odstranili všechny duplicitní řádky, aby se každý řádek objevil pouze jednou.
Příklad:
Naše databáze obsahuje tabulku s názvem clothes
s údaji v následujících sloupcích:id
, name
, color
a year_produced
.
id | jméno | barva | year_produced |
---|---|---|---|
1 | Tričko | žlutá | 2015 |
2 | bunda | modrá | 2016 |
3 | džíny | černá | 2015 |
4 | bunda | modrá | 2015 |
5 | bunda | zelená | 2016 |
6 | bunda | žlutá | 2017 |
7 | klobouk | žlutá | 2017 |
Podívejme se na neopakovaná jména a barvy oděvů vyrobených před rokem 2017.
Řešení:
SELECT DISTINCT name, color FROM clothes WHERE year_produced < 2017;
Zde je výsledek:
name | barva |
---|---|
Tričko | žlutá |
bunda | modrá |
džíny | černá |
bunda | zelená |
Všimněte si, že modrý
Diskuse:
Jednoduše použijte DISTINCT
klíčové slovo po SELECT
pokud chcete vybrat pouze neopakované řádky. Toto klíčové slovo přinutí dotaz zahodit všechny duplicitní řádky pouze na základě vámi uvedených sloupců.
Zde je příklad výběru pouze řádků, pro které je název položky jedinečný:
SELECT DISTINCT name FROM clothes WHERE year_produced < 2017;
Na rozdíl od předchozího dotazu tento vrací pouze tři záznamy:
name | |
---|---|
Tričko | |
džíny | |
Zatímco v původní tabulce jsou čtyři džíny (dva modré, jeden zelený a jeden žlutý), položka se v této sadě výsledků zobrazí pouze jednou díky DISTINCT
klíčové slovo.