Počítání hodnot

Místo hvězdičky můžete do závorek za COUNT napsat sloupec. COUNT(sloupec) nepočítá řádky, ale hodnoty: řádky, ve kterých sloupec není NULL. Dva zákazníci obchodu nemají vyplněné město, a tak se tato dvě čísla liší:

SELECT COUNT(*) AS vsichni_zakaznici,
       COUNT(mesto) AS s_mestem
FROM zakaznici;
vsichni_zakaznicis_mestem
1412

COUNT(*) spočítá všech 14 řádků, COUNT(mesto) jen těch 12, které město mají. NULL znamená, že tam žádná hodnota není, a kde není hodnota, není co počítat. Sloupec, který nikdy není NULL, třeba id, dá stejné číslo jako COUNT(*).

Chcete-li každou hodnotu započítat jen jednou, napište do závorek před sloupec DISTINCT. V kolika různých městech zákazníci bydlí?

SELECT COUNT(DISTINCT mesto) AS mesta
FROM zakaznici;
mesta
4

Ve čtyřech. SELECT DISTINCT mesto FROM zakaznici; by ukázal pět řádků, protože jedním z nich je NULL, ale COUNT(DISTINCT mesto) hodnotu NULL přeskočí stejně jako COUNT(mesto).

Typická chyba: COUNT(sloupec) tam, kde chcete počítat řádky. SELECT COUNT(vydano) FROM hry; řekne 18, přestože obchod má 20 her: Robot Rebellion a Mystery Manor ještě nevyšly, a tak je jejich vydano NULL. Když chcete počítat řádky, napište COUNT(*), a sloupec dejte do závorek, jen když chcete schválně vynechat řádky, kde je NULL.

Pokyny

Kolik je recenzí a kolik z nich má komentář? Ukažte obě čísla v jednom dotazu, ve sloupcích pocet_recenzi a s_komentarem:

pocet_recenzis_komentarem
2515

Pod tím spočítejte, kolik různých zákazníků zadalo objednávku (sloupec zakaznik_id tabulky objednavky), ve sloupci zakaznici_s_objednavkou:

zakaznici_s_objednavkou
12

A v jednom dotazu spočítejte řádky tabulky polozky ve sloupci pocet_polozek a různé hry v nich ve sloupci ruzne_hry:

pocet_polozekruzne_hry
4217

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

2/10