CommencerCommencer gratuitement

Filtrer les groupes

La nouvelle fonctionnalité de statistiques des notes de la Metropolitan Public Library fait un carton ! Cependant, des usagers se plaignent que les livres avec une ou deux critiques seulement peuvent afficher des moyennes trompeuses. Un livre avec un unique avis 5 étoiles semble aussi bien noté qu’un classique plébiscité avec des centaines d’avis positifs.

La directrice de la bibliothèque vous a demandé d’améliorer le système en permettant aux utilisateurs d’exclure les livres qui n’ont pas assez de critiques.

Cet exercice fait partie du cours

Interroger une base de données PostgreSQL en Java

Afficher le cours

Instructions

  • Complétez la requête pour filtrer les livres selon un nombre de critiques spécifié.
  • Définissez le paramètre de manière sécurisée afin d’afficher uniquement les livres ayant au moins trois critiques.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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"));
                }
            }
        }
    }
}
Modifier et exécuter le code