Vše nad databází z https://is.muni.cz/auth/el/1421/podzim2018/VIKBB68/um/10_prednaska/ 1. Vypište autory začínající na B (příjmení) a u každého z nich počet knih, které od něj máme. Seřazeno od nejmíň po nejvíc. 2. Vypište nakladatele a u každého z nich počet knih, které od něj máme (včetně těch, od kterých žádnou knihu v nabídce nemáme). Seřazeno od nejvíc po nejmíň. 3. Vypište zákazníky, kteří neudělali ještě ani jednu objednávku. 4. Jaká kniha byla nejprodávanější (na počet kusů) v listopadu 2014 5. Vypište zákazniky, kteří ohodnotili alespoň 10 knih 6. Vypište objednávky placené kartou (tj. zpusob_platby = kartou), vždy ID, datum a jejich celkovou výši. 7. Vypište zákazníky a u každého z nich celkovou sumu, kterou utratil. Omezte výpis pouze na zákazníky, kteří utratili víc než 5000 Řešení: 1. SELECT jmeno, prijmeni, COUNT(autori_id) FROM 'autori' LEFT JOIN autori_knihy ON id = autori_id WHERE prijmeni LIKE "b%" GROUP BY id ORDER BY COUNT(autori_id) 2. SELECT nakladatelstvi.nazev, COUNT(knihy.id) FROM nakladatelstvi LEFT JOIN knihy ON knihy.nakladatelstvi = nakladatelstvi.id GROUP BY nakladatelstvi.id ORDER BY COUNT(knihy.id) DESC 3. SELECT jmeno, prijmeni FROM zakaznici LEFT JOIn objednavky ON zakaznici.id_zakaznik = objednavky.id_zakaznik WHERE objednavky.id IS NULL 4. SELECT nazev, SUM(pocet) FROM knihy k LEFT JOIN polozky_objednavky po ON po.id_kniha = k.id LEFT JOIN objednavky o ON o.id = po.id_objednavka WHERE strftime("%Y-%m", vytvoreno) = "2014-11" ​(vybrání “listopadových objednávek” lze udělat několika různými způsoby, viz předchozí přednášky) GROUP BY k.id ORDER BY SUM(pocet) DESC 5. SELECT zakaznici.*, COUNT(id_kniha) FROM zakaznici LEFT JOIN hodnoceni ON zakaznici.id_zakaznik = hodnoceni.id_zakaznik GROUP BY id_kniha HAVING COUNT(id_kniha) >= 10 6. SELECT o.*, o.id, o.vytvoreno, SUM(pocet * cena_za_kus) FROM objednavky o INNER JOIN polozky_objednavky po ON o.id = po.id_objednavka WHERE zpusob_platby = "kartou" GROUP BY o.id 7. SELECT z.*, SUM(pocet * cena_za_kus) FROM zakaznici z INNER JOIN objednavky o ON z.id_zakaznik = o.id_zakaznik INNER JOIN polozky_objednavky po ON o.id = po.id_objednavka GROUP BY z.id_zakaznik HAVING SUM(pocet * cena_za_kus) > 5000