Sloupce v databázových tabulkách mohou obsahovat mnoho stejných – duplicitních údajů, se stejnou hodnotou. Pojďme se podívat, jak rozlišit tyto duplicitní sloupce pomocí SELECT DISTINCT. Tyto sloupce mají zpravidla nějaký jednotný jmenovatel, který odráží vazbu ze skutečného světa.
Proč řešit + příklad z praxe
Například v databázi internetového obchodu, když zákazník provádí různé nákupy, tak jeho jméno se bude stále opakovat. Nás ale může zajímat kolik máme v daný moment unikátních zákazníků. K tomu slouží rozšíření SELECT statementu o DISTINCT.
Syntaxe je jednoduchá:
SELECT DISTINCT jmeno_zakaznika,
FROM tabulka_transakce;
Tento jednoduchý dotaz může být velice užitečný a mnoho odhalit. Rázem nám ukáže, že sice například máme tisíce objednávek, ale realizuje je třeba jenom pár zákazníků. Našemu byznysu se daří, ale ztráta každého zákazníka může tvrdě bolet.
Pokud by nám na tomto příkladu vracely SELECT a SELECT DISTINC podobný počet řádků, tak se naopak bát nemusí – náš byznys mnoho zákazníků a ztráta jednoho nás tolik bolet nebude. Na druhou stranu nám to říká, že máme jasnou příležitost zaměřit se naopak na retenci – potřebujeme získat stálé zákazníky.
Počítáme řádky
A co pokud chceme rovnou spočítat kolik máme unikátních hodnot? V našem případě zákazníků.
K tomu použijeme:
SELECT COUNT (DISTINCT jmeno_zakaznika)
FROM tabulka_transakce
Teď můžeme lehce porovnávat celkový počet řádků a počet unikátních řádků podle námi vybraných sloupců. Jednoduchý příkaz, které nám může říci více, než se na první pohled zdá.