Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Komplettera frågan för att räkna antalet recensioner och beräkna medelbetyget.
  • Gruppera resultaten efter book_id fö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"));
            }
        }
    }
}
Redigera och kör kod