Přednáška 5. 20.10.2014    Domácí úkol  http://is.muni.cz/el/1421/podzim2014/VIKMB44/um/51149664/fund­aktualni.sqlite    1. Jaká je nejčastější výše daru?  SELECT castka, COUNT(castka) AS pocet FROM fund GROUP BY castka  ORDER BY pocet DESC;  2. Jaká je průměrná výše daru první den v měsících?  SELECT COUNT(castka) AS pocet, ROUND(AVG(castka)) AS castka,  (SUBSTR(datum, 6, 10)) AS mesic FROM fund WHERE datum LIKE "%01"  GROUP BY mesic ORDER BY mesic ASC        Zopakování HAVING a GROUP BY, databáze fund.sqlite z 4. přednášky:  http://is.muni.cz/el/1421/podzim2014/VIKMB44/um/51149664/fund­aktualni.sqlite    1. Vypsat počet příspěvků po měsících, měsíc v němž byly příspěvky vloženy,  průměrnou výši příspěvku. Jednotlivý příspěvek musí být vyšší než 100 a průměrná  výše příspěvku za měsíc zároveň větší než 350.  Řešení:  1. SELECT COUNT(*), ROUND(AVG(castka)) AS prumer, SUBSTR(datum, 6, 2) AS  mesic FROM fund WHERE castka > 100 GROUP BY mesic HAVING prumer >  350;    Databáze:   http://is.muni.cz/el/1421/podzim2014/VIKMB44/um/51245952/books_2    Dotazy:  1. Počet knih VS primární klíč. Souhlasí ?  2. Vypiš všechny knihy s vydavetelem.  3. Vypiš všechny knihy s jazykem i vydavatelem­  4. Vypiš vydatele a počet jím vydaných knih. Seřaď od nejčastějšího vydavatele.  5. Vypiš jazyk a počet knih v něm napsaných. Seřaď od nejčastějšího jazyka.    Řešení:  1. Počet knih v tabulce je <= nejvyššímu primárnímu klíči.  2. SELECT b.title, b.year, p.publisher FROM books b INNER JOIN publishers p ON  (b.publisher_id = p.id);  3. SELECT b.title, b.year, p.publisher, l.language FROM books b INNER JOIN  publishers p ON (b.publisher_id = p.id) INNER JOIN languages l ON (b.language_id  = l.id);  4. SELECT p.publisher, COUNT(b.id) AS pocet_knih FROM publishers p INNER JOIN  books b ON (p.id = b.publisher_id) GROUP BY p.publisher ORDER BY pocet_knih  DESC;    Velice podobná otázka na které si můžeme ukázat, že nezáleží na pořadí tabulek v  INNER JOIN ani na pořadí porovnávání klíčů v ON (...)    5. SELECT l.language, COUNT(b.id) AS pocet_knih FROM books b INNER JOIN  languages l ON (l.id = b.language_id) GROUP BY l.language ORDER BY  pocet_knih DESC    a druhá možnost je GROUP BY l.id    SELECT l.language, COUNT(b.id) AS pocet_knih FROM books b INNER JOIN  languages l ON (l.id = b.language_id) GROUP BY b.language_id ORDER BY  pocet_knih DESC