CommencezCommencez gratuitement

Filtrer les groupes

La nouvelle fonctionnalité de statistiques des cotes de la Bibliothèque publique métropolitaine connaît un grand succès ! Toutefois, des usagers ont signalé que les livres avec une ou deux critiques seulement peuvent fausser la moyenne. Un livre ayant une seule critique de 5 étoiles peut sembler aussi bien coté qu'un classique adoré ayant des centaines d'avis positifs.

La direction de la bibliothèque vous demande donc d'améliorer le système pour permettre aux utilisateurs d'exclure les livres avec un nombre insuffisant de critiques.

Cette activité fait partie du cours

Interroger une base de données PostgreSQL en Java

Voir le cours

Instructions de l’exercice

  • Complétez la requête pour filtrer les livres selon un nombre précis de critiques.
  • Définissez de façon sécuritaire le paramètre afin d'afficher uniquement les livres ayant au moins trois critiques.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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