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
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_idpour 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"));
}
}
}
}