Podsumowanie danych
Jesteś programistą w Miejskiej Bibliotece Publicznej. Kierownik biblioteki poprosił o nową funkcję w katalogu online: wyświetlanie statystyk ocen dla każdej książki, aby czytelnicy mogli podejmować świadome decyzje czytelnicze. Obecnie system przechowuje pojedyncze recenzje w tabeli book_reviews, ale nie ma możliwości sprawdzenia, ile recenzji zebrała dana książka ani jaka jest jej średnia ocena.
Twoim zadaniem jest napisanie zapytania, które podsumuje dane o recenzjach – obliczając łączną liczbę recenzji oraz średnią ocenę dla każdej książki.
To ćwiczenie jest częścią kursu
Zapytania do bazy danych PostgreSQL w Javie
Instrukcje do ćwiczenia
- Uzupełnij zapytanie, aby zliczyć liczbę recenzji i obliczyć średnią ocenę.
- Pogrupuj wyniki według
book_id, aby uzyskać statystyki dla każdej książki.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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"));
}
}
}
}