LoslegenKostenlos starten

Gruppen filtern

Die neue Funktion mit Bewertungsstatistiken der Metropolitan Public Library ist ein Erfolg! Allerdings haben sich Nutzer beschwert, dass Bücher mit nur einer oder zwei Rezensionen zu irreführenden Durchschnitten führen können. Ein Buch mit einer einzigen 5-Sterne-Bewertung wirkt genauso hoch bewertet wie ein beliebter Klassiker mit Hunderten positiver Rezensionen.

Die Bibliotheksleitung hat dich gebeten, das System zu verbessern, damit Nutzende Bücher mit unzureichender Anzahl an Rezensionen herausfiltern können.

Diese Übung ist Teil des Kurses

<Kurs>Abfragen einer PostgreSQL-Datenbank in Java</Kurs>
Kurs ansehen

Übungsanweisungen

  • Vervollständige die Abfrage, um Bücher nach einer festgelegten Anzahl an Rezensionen zu filtern.
  • Setze den Parameter sicher, sodass nur Bücher mit mindestens drei Rezensionen angezeigt werden.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

public class Main {
    public static void main(String[] args) throws SQLException {
        HikariDataSource ds = HikariSetup.createDataSource();
        String query = """
            SELECT book_id, COUNT(*), AVG(rating)
            FROM book_reviews
            GROUP BY book_id
            -- Filter books with a specified number of reviews
            ____ count(*) >= ?
            """;

        try (Connection conn = ds.getConnection();
             PreparedStatement pstmt = conn.prepareStatement(query)) {
            // Display books with at least three reviews
            pstmt.____(____, ____);
            try (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