Úvod do SQL Hodina č. 4 Osnova • Opakování • Doplnění “date” a “string” funkcí • Agregační funkce • A pak a tak DB pro dnešní den http://fund2016.jdem.cz/ Tabulka “fund” Rozcvička! Kolik lidí přispělo skrze web 1000 nebo 100 korun? SELECT * FROM fund WHERE zdroj = “web” AND (castka = 100 OR castka = 1000) Funkce f(x) = (x-10)2 - 8 Funkce Kouzlo! Funkce Kouzlo! Round() Kouzlo! Round(10.123) Kouzlo! 10.123 Round(10.123) Kouzlo! 10.123 10 Round(10.123, 1) Kouzlo! 10.123 10.1 1 Round(10.123, 1) Kouzlo! 10.123 10.1 1 Agregační funkce AVG, MIN, MAX, COUNT, SUM Agregační funkce Kouzlo! sloupec Číslo/řetězec Práce! Jaký je průměrný příspěvek z webu? SELECT AVG(castka) FROM fund WHERE zdroj = “web” Složené funkce ROUND(AVG(castka), 1) A ještě! Jaká byla nejvyšší a nejnižší výše příspěvku? Jedním dotazem! SELECT MAX(castka), MIN(castka) FROM fund “Date” funkce https://www.sqlite.org/lang_datefunc.html “Date” funkce strftime() strftime(format, timestring, modifier, modifier, ...) “Date” funkce strftime() strftime(format, timestring, modifier, modifier, ...) Jak vybrat květnové příspěvky? 1. Tzv. varianta “hodně na sílu” jak vybrat květnové příspěvky 6 způsobů SELECT * FROM fund WHERE datum = “2013-05-01” OR datum = “2013-05-02” … 1. Tzv. varianta “hodně na sílu” 2. Bez znalosti date/string funkcí A. 2x pomocí nerovností jak vybrat květnové příspěvky 6 způsobů SELECT * FROM fund WHERE datum >= “2013-05-01” AND datum < “2013-06-01” díky použití prvního dne následujícího měsíce nemusíte znát kolik dnů má květen 1. Tzv. varianta “hodně na sílu” 2. Bez znalosti date/string funkcí A. 2x pomocí nerovností B. Bez nich! jak vybrat květnové příspěvky 6 způsobů SELECT * FROM fund WHERE datum LIKE “2013-05-%” 1. Tzv. varianta “hodně na sílu” 2. Bez znalosti date/string funkcí A. 2x pomocí nerovností B. Bez nich! 3. Pouze se znalostí “date” funkcí jak vybrat květnové příspěvky 6 způsobů SELECT * FROM fund WHERE strftime(“%m”, datum) = “05” 6 způsobů 1. Tzv. varianta “hodně na sílu” 2. Bez znalosti date/string funkcí A. 2x pomocí nerovností B. Bez nich! 3. Pouze se znalostí “date” funkcí 4. Pouze se znalostí “string” funkcí jak vybrat květnové příspěvky SELECT * FROM fund WHERE SUBSTR(datum, 6, 2) = “05” jak vybrat květnové příspěvky 6 způsobů V žádném případě vás nebudeme zkoušet, jestli znáte všech šest. Jde jen o ukázku toho, že v SQL jde často k řešení přistupovat různými způsoby. Všechny jsou správné. RANDOM() Kouzlo! RANDOM() SELECT * FROM fund ORDER BY random() LIMIT 1 GROUP BY Agregace Počet, průměr, součet… GROUP BY GROUP BY + agregace Agregační funkce Kouzlo! sloupec Číslo/řetězec Agregační funkce Ko KoKo Agregační funkce Ko KoKo GROUP BY color