Úvod do SQL Hodina č. 10 model-eshop-is.jdem.cz Které nakladatelství vydalo nejvíc knížek v holandštině? SELECT nakladatelstvi.nazev, COUNT(*) FROM nakladatelstvi INNER JOIN knihy ON knihy.nakladatelstvi = nakladatelstvi.id INNER JOIN jazyky_vydani ON jazyky_vydani.id = knihy.jazyk WHERE jazyky_vydani.nazev LIKE "holandština" GROUP BY nakladatelstvi.id ORDER BY COUNT(*) DESC Které nakladatelství vydalo nejvíc knížek v holandštině? (pomocí subselect) SELECT nakladatelstvi.nazev, COUNT(*) FROM nakladatelstvi INNER JOIN knihy ON knihy.nakladatelstvi = nakladatelstvi.id INNER JOIN jazyky_vydani ON jazyky_vydani.id = knihy.jazyk WHERE jazyky_vydani.id = (SELECT id FROM jazyky_vydani WHERE nazev LIKE "holandština") GROUP BY nakladatelstvi.id ORDER BY COUNT(*) DESC Která knížka byla nejprodávanější? Kniha, která byla na nejvíce objednávkách: SELECT knihy.nazev, COUNT(*) FROM knihy INNER JOIN polozky_objednavky ON id = id_kniha GROUP BY id ORDER BY COUNT(*) DESC LIMIT 1 Kniha, které se prodalo nejvíc kusů: SELECT knihy.nazev, SUM(pocet) FROM knihy INNER JOIN polozky_objednavky ON id = id_kniha GROUP BY id ORDER BY SUM(pocet) DESC LIMIT 1 Kolik korun celkově utržili? SELECT SUM(pocet * cena_za_kus) FROM polozky_objednavky Která objednávka měla největší hodnotu? SELECT id_objednavka, SUM(pocet * cena_za_kus) FROM polozky_objednavky GROUP BY id_objednavka ORDER BY SUM(pocet * cena_za_kus) DESC LIMIT 1 Nejlépe hodnocené knihy? SELECT nazev, AVG(pocet_hvezdicek) FROM hodnoceni INNER JOIN knihy ON id = id_kniha GROUP BY id_kniha ORDER BY AVG(pocet_hvezdicek) DESC Pozor, tento dotaz neber v potaz počet hodnocení, čili se na první místa dostanou knížky, které byly hodnoceny jen jednou (např. samotným autotem:) a to plným počtem Nejlépe hodnocené knihy? SELECT nazev, AVG(pocet_hvezdicek) FROM hodnoceni INNER JOIN knihy ON id = id_kniha GROUP BY id_kniha HAVING COUNT(*) > 10 ORDER BY AVG(pocet_hvezdicek) DESC Bere v potaz jen ty knížky, které nasbíraly "relevantní" počet hodnocení. Volba čísla je čistě na nás, našich zkušenostech a výsledcích, kterých chceme dosáhnout.