De gegevens samenvatten
Je bent ontwikkelaar bij de Metropolitan Public Library. De hoofd-bibliothecaris heeft een nieuwe functie voor de online catalogus aangevraagd: beoordelingsstatistieken per boek tonen, zodat bezoekers makkelijker een keuze kunnen maken. Op dit moment slaat het systeem afzonderlijke reviews op in de tabel book_reviews; er is echter geen manier om het totale aantal reviews of de gemiddelde beoordeling per boek te bekijken.
Jouw taak is een query schrijven die de reviewgegevens samenvat door het totale aantal reviews en de gemiddelde beoordeling per boek te berekenen.
Deze oefening maakt deel uit van de cursus
Query's uitvoeren op een PostgreSQL-database in Java
Oefeninstructies
- Maak de query af om het aantal reviews te tellen en de gemiddelde beoordeling te berekenen.
- Groepeer de resultaten op
book_idom statistieken per boek te krijgen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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"));
}
}
}
}