Obsah obrázku voda, exteriér, budova, vsedě Popis byl vytvořen automaticky Z3104 GEODATABÁZE – LEKCE 6 Mgr. Martina Klocová OBSAH HODINY •Připojení – kontrola připojení •Trocha teorie – Agregační funkce •Praxe TEST • LIMIT / OFFSET •Omezí počet vypisovaných řádků. • •SELECT * FROM student LIMIT 20; •Vypíše prvních 20 záznamů/ 20 záznamů od prvního záznamu • •SELECT * FROM student LIMIT 20 OFFSET 20; •Vypíše 20 záznamů od 20. pořadí (Záznam 21., 22.,…40.) DISTINCT •Odlišný •Každá hodnota je ve výsledné tabulce zobrazena pouze jednou. • •SELECT DISTINCT vek FROM student; AGREGACE •Agregační funkce slouží k získávání agregovaných údajů z tabulky • •Nevypisují se konkrétní záznamy, ale informace o záznamech ZÁKLADNÍ AGREGAČNÍ FUNKCE •AVG – průměr •MAX – maximum •MIN – minimum •SUM – součet •COUNT – počet AVG •SELECT AVG(vek) FROM student; •Věkový průměr všech studentů • •SELECT AVG(DISTINCT vek) FROM student; •Průměr věků studentů MAX •SELECT MAX(vek) FROM student; • •SELECT MAX(DISTINCT vek) FROM student; • •SELECT vek FROM student ORDER BY vek DESC LIMIT 1; • •3 způsoby získání maximální hodnoty – výsledek je vždy stejný MIN •SELECT MIN(vek) FROM student; • •SELECT MIN(DISTINCT vek) FROM student; • •SELECT vek FROM student ORDER BY vek ASC LIMIT 1; • •3 způsoby získání minimální hodnoty – výsledek je vždy stejný • SUM/COUNT •SUM – součet hodnot z určitého sloupce – sčítací funkce • •COUNT – vyhodí počet záznamů se zadanou hodnotou – počítací funkce SUM •SELECT SUM(vek) FROM student; •Součet všech věků studentů. • •SELECT SUM(DISTINCT vek) FROM student; •Součet věků studentů, každý věk se započítá jen nednou COUNT •SELECT COUNT(vek) FROM student; •Počet věků studentů (u kolika studentů je věk vyplněn). • •SELECT COUNT(DISTINCT vek) FROM student; •Počet jednotlivých věků studentů (výskyt hodnot). • KOMBINACE AGREGAČNÍCH FUNKCÍ •SELECT COUNT(vek), AVG(vek), MIN(vek), MAX(vek), SUM(vek) • FROM student; • • •SELECT vek, COUNT(vek) FROM student; •ERROR: column "student.vek" must appear in the GROUP BY clause or be used in an aggregate function LINE 1: SELECT vek, COUNT(vek) FROM student; • GROUP BY •SELECT COUNT(vek) FROM student GROUP BY vek; • •SELECT DISTINCT id_autora, COUNT(id_autora) • FROM kniha GROUP BY id_autora; • •SELECT autor.id, autor.jmeno, autor.prijmeni, • COUNT(kniha.id_autora) FROM kniha • FULL JOIN autor ON (kniha.id_autora = autor.id) • GROUP BY autor.id, autor.jmeno, autor.prijmeni; A TEĎ VY! ÚKOL 1 •Vezmete si databázi z minulé hodiny a zeptáte se: • •Kolik autorů obsahuje databáze? •Jaké je průměrný rok vydání knihy? •Vypište všechny názvy knih začínající na písmenem P •Kolik knih (počet!) napsal Ernest Hemingway? DĚKUJI ZA POZORNOST