Počítání řádků

Zatím každý dotaz ukazoval řádky: jeden řádek výsledku pro každý řádek tabulky, který našel. Často ale chcete místo toho jediné číslo. Kolik má obchod zákazníků? Kolik her prodal? Kolik vydělal? Na takové otázky má SQL agregační funkce. Agregační funkce vezme mnoho řádků a udělá z nich jednu hodnotu.

Nejjednodušší z nich je COUNT(*) (count znamená spočítat). Počítá řádky:

SELECT COUNT(*)
FROM zakaznici;
COUNT(*)
14

Výsledek má jeden řádek a jeden sloupec a ten se jmenuje podle toho, co jste napsali: COUNT(*). Pomocí AS mu můžete dát lepší název, stejně jako výpočtům ve druhé lekci:

SELECT COUNT(*) AS pocet_zakazniku
FROM zakaznici;
pocet_zakazniku
14

COUNT(*) funguje dohromady s WHERE: databáze nejdřív najde řádky, které splňují podmínku, a pak spočítá jen ty. Tolik zákazníků bydlí v Praze:

SELECT COUNT(*) AS z_prahy
FROM zakaznici
WHERE mesto = 'Praha';
z_prahy
4

Dotaz s agregační funkcí vrátí jeden řádek, i když podmínku nesplňuje žádný řádek. Z Olomouce obchod žádné zákazníky nemá, takže COUNT(*) řekne 0:

SELECT COUNT(*) AS z_olomouce
FROM zakaznici
WHERE mesto = 'Olomouc';
z_olomouce
0

Hvězdička v COUNT(*) znamená celé řádky: počítá je bez ohledu na to, co v nich je. V dalším cvičení uvidíte, co se stane, když do závorek místo ní napíšete sloupec. A agregační funkce umí kromě počítání také sčítat, počítat průměr a najít nejmenší a největší hodnotu; všechny je poznáte v této lekci.

Typická chyba: sloupec vedle COUNT(*). Výsledek dotazu SELECT jmeno, COUNT(*) FROM zakaznici; má jeden řádek, které ze 14 jmen v něm tedy má být? Většina databází ohlásí chybu. SQLite ne, ukáže jméno jednoho ze zákazníků:

jmenoCOUNT(*)
Eva Novotná14

Vypadá to, jako by Eva Novotná měla 14 něčeho, což je nesmysl. Zatím se tedy ptejte buď na řádky, nebo na počet, ne na obojí v jednom dotazu. Později v této lekci se naučíte spočítat třeba zákazníky každého města zvlášť.

Pokyny

Spočítejte všechny objednávky v tabulce objednavky. Sloupec pojmenujte pocet_objednavek:

pocet_objednavek
30

Pod tím spočítejte jen vrácené objednávky, tedy ty, jejichž stav je 'vraceno'. Sloupec pojmenujte vracene_objednavky:

vracene_objednavky
2

A spočítejte hry, které vyšly v roce 2025, ve sloupci vydane_2025:

vydane_2025
4

Začněte programovat zdarma

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

Nebo se registrujte pomocí:

1/10