Resumir los datos
Eres desarrollador en la Biblioteca Pública Metropolitana. La bibliotecaria jefa ha solicitado una nueva funcionalidad para el catálogo en línea: mostrar estadísticas de calificaciones de cada libro para ayudar a los usuarios a elegir mejor sus lecturas. Actualmente, el sistema guarda las reseñas individuales en la tabla book_reviews; sin embargo, no hay forma de ver el número total de reseñas que ha recibido un libro ni su calificación media.
Tu tarea es escribir una consulta que resuma los datos de reseñas calculando el número total de reseñas y la calificación media por cada libro.
Este ejercicio forma parte del curso
Consultas a una base de datos PostgreSQL en Java
Instrucciones del ejercicio
- Completa la consulta para contar el número de reseñas y calcular la calificación media.
- Agrupa los resultados por
book_idpara obtener las estadísticas de cada libro.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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"));
}
}
}
}