LoslegenKostenlos loslegen

Daten zusammenfassen

Du arbeitest als Entwickler bei der Metropolitan Public Library. Die leitende Bibliothekarin hat eine neue Funktion für den Online-Katalog angefragt: Für jedes Buch sollen Bewertungsstatistiken angezeigt werden, damit Leser fundierte Entscheidungen treffen können. Derzeit speichert das System einzelne Rezensionen in der Tabelle book_reviews; es gibt jedoch keine Möglichkeit, die Gesamtzahl der erhaltenen Rezensionen oder die durchschnittliche Bewertung eines Buches anzuzeigen.

Deine Aufgabe ist es, eine Abfrage zu schreiben, die die Rezensionsdaten zusammenfasst, indem sie die Gesamtzahl der Rezensionen und die durchschnittliche Bewertung für jedes Buch berechnet.

Diese Übung ist Teil des Kurses

Abfragen einer PostgreSQL-Datenbank in Java

Kurs anzeigen

Anleitung zur Übung

  • Vervollständige die Abfrage, um die Anzahl der Rezensionen zu zählen und die durchschnittliche Bewertung zu berechnen.
  • Gruppiere die Ergebnisse nach book_id, um Statistiken für jedes Buch zu erhalten.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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"));
            }
        }
    }
}
Code bearbeiten und ausführen