Úvod do jazyka SQL Hodina č. 9 Datové modelování Knihy Datové modelování Knihy Objednávky Knihy Objednávky id_kniha 1:m Knihy Objednávky id_objednavka 1:m Knihy Objednávky m:n Knihy Objednávky Položka objednávky Knihy Objednávky Položka objednávky id_kniha Knihy Objednávky Položka objednávky id_kniha id_objednavka db-eshop.jdem.cz model-eshop.jdem.cz Které nakladatelství vydalo nejvíc knížek v holandštině? SELECT COUNT(*) as pocet, k.nazev as kniha, jv.nazev as jazyk, n.nazev as nakladatelstvi FROM knihy k INNER JOIN jazyky_vydani jv ON jv.id = k.jazyk INNER JOIN nakladatelstvi n ON n.id = k.nakladatelstvi WHERE jv.nazev LIKE "holandština" GROUP BY n.id Vypište knížky a jejich žánry (oddělné čárkami) SELECT k.id, k.nazev, GROUP_CONCAT(zanr, ", ") FROM knihy k INNER JOIN knihy_zanry ON k.id = knihy_id INNER JOIN zanry z ON z.id = zanry_id GROUP BY k.id Která knížka byla nejprodávanější? SELECT id_kniha, nazev, SUM(pocet) as pocet_prodanych_kusu FROM polozky_objednavky INNER JOIN knihy ON id_kniha = id GROUP BY id_kniha ORDER BY pocet_prodanych_kusu DESC Dle celkového počtu prodaných kusů Dle počtu objednávek, na kterých se kniha vyskytla SELECT id_kniha, nazev, COUNT(*) as pocet_objednavek FROM polozky_objednavky INNER JOIN knihy ON id_kniha = id GROUP BY id_kniha ORDER BY pocet_objednavek DESC Kolik korun utržili v listopadu 2014? SELECT SUM(cena_za_kus * pocet) FROM polozky_objednavky INNER JOIN objednavky ON id_objednavka = id WHERE vytvoreno LIKE "2014-11-%" Nejlépe hodnocená kniha? SELECT COUNT(*) as pocet_hodnoceni, ROUND(AVG(h.pocet_hvezdicek),2) as prumerne_hodnoceni, k.nazev FROM hodnoceni h INNER JOIN knihy k ON id_kniha = id GROUP BY id_kniha ORDER BY prumerne_hodnoceni DESC Pokud chceme zobrazit pouze knihy, které mají alespoň 6 hodnocení SELECT COUNT(*) as pocet_hodnoceni, ROUND(AVG(h.pocet_hvezdicek),2) as prumerne_hodnoceni, k.nazev FROM hodnoceni h INNER JOIN knihy k ON id_kniha = id GROUP BY id_kniha HAVING pocet_hodnoceni >= 6 ORDER BY prumerne_hodnoceni DESC