ComenzarEmpieza gratis

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

Ver curso

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_id para 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"));
            }
        }
    }
}
Editar y ejecutar código