CommencerCommencer gratuitement

Résumer les données

Vous êtes développeur pour la Bibliothèque publique métropolitaine. La ou le bibliothécaire en chef a demandé une nouvelle fonctionnalité pour le catalogue en ligne : afficher les statistiques de notation de chaque livre afin d’aider les usagers à faire des choix éclairés. Actuellement, le système stocke les avis individuels dans la table book_reviews ; cependant, il n’existe aucun moyen de voir le nombre total d’avis reçus par un livre ni sa note moyenne.

Votre tâche consiste à écrire une requête qui résume les avis en calculant, pour chaque livre, le nombre total de critiques et la note moyenne.

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 compter le nombre d’avis et calculer la note moyenne.
  • Regroupez les résultats par book_id pour obtenir les statistiques de chaque livre.

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