CommencezCommencez gratuitement

Résumer les données

Vous êtes développeur à la Bibliothèque publique métropolitaine. La direction a demandé une nouvelle fonctionnalité pour le catalogue en ligne : afficher des statistiques de notation pour chaque livre afin d'aider les abonnés à faire des choix éclairés. À l'heure actuelle, le système conserve les critiques individuelles dans la table book_reviews; toutefois, il n'y a aucun moyen de voir le nombre total de critiques qu'un livre a reçues ni sa note moyenne.

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

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

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 = """
            --  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