Kom igångKom igång gratis

Filtrera grupper

Metropolitan Public Librarys nya funktion för betygsstatistik är en succé! Några låntagare har dock påpekat att böcker med bara en eller två recensioner kan ge missvisande genomsnitt. En bok med en enda femstjärnig recension ser lika högt betygsatt ut som en älskad klassiker med hundratals positiva omdömen.

Bibliotekets chef vill att du förbättrar systemet så att användare kan filtrera bort böcker med för få recensioner.

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 filtrera böcker utifrån ett angivet antal recensioner.
  • Ange parametern på ett säkert sätt så att endast böcker med minst tre recensioner visas.

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 = """
            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"));
                }
            }
        }
    }
}
Redigera och kör kod