Sammanfatta data
Du arbetar som utvecklare för Metropolitan Public Library. Bibliotekschefen har efterfrågat en ny funktion i den digitala katalogen: att visa betygsstatistik för varje bok, så att låntagarna kan fatta välgrundade läsval. I nuläget lagrar systemet individuella recensioner i tabellen book_reviews, men det finns inget sätt att se hur många recensioner en bok har fått eller vad dess medelbetyg är.
Din uppgift är att skriva en fråga som sammanfattar recensionsdata genom att beräkna det totala antalet recensioner och medelbetyget för varje bok.
Den här övningen är en del av kursen
Fråga en PostgreSQL-databas i Java
Övningsinstruktioner
- Komplettera frågan för att räkna antalet recensioner och beräkna medelbetyget.
- Gruppera resultaten efter
book_idför att få statistik för varje bok.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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"));
}
}
}
}