Shrnutí dat
Pracuješ jako vývojář/ka pro Metropolitní veřejnou knihovnu. Vedoucí knihovník/knihovnice tě požádal/a o novou funkci online katalogu: zobrazování statistik hodnocení u každé knihy, aby si čtenáři mohli lépe vybírat. Systém momentálně ukládá jednotlivé recenze do tabulky book_reviews, ale zatím není možné zjistit, kolik recenzí konkrétní kniha získala ani jaké je její průměrné hodnocení.
Tvým úkolem je napsat dotaz, který shrne data o recenzích – konkrétně celkový počet recenzí a průměrné hodnocení pro každou knihu.
Toto cvičení je součástí kurzu
Dotazování PostgreSQL databáze v Javě
Pokyny k cvičení
- Dopiš dotaz tak, aby počítal počet recenzí a vypočítal průměrné hodnocení.
- Výsledky seskup podle
book_id, aby ses dostal/a ke statistikám pro každou knihu.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
public class Main {
public static void main(String[] args) throws SQLException {
HikariDataSource ds = HikariSetup.createDataSource();
String query = """
-- Count the number of reviews and the average rating
SELECT book_id, ____(*), ____(rating)
FROM book_reviews
-- Group reviews by book_id
____ ____ ____;
""";
try (Connection conn = ds.getConnection();
PreparedStatement pstmt = conn.prepareStatement(query);
ResultSet rs = pstmt.executeQuery()) {
while (rs.next()) {
System.out.printf("ID: %d, Count: %d, Average: %.0f%n",
rs.getInt("book_id"), rs.getInt("count"), rs.getDouble("avg"));
}
}
}
}