ComeçarComece de graça

Resumindo os dados

Você é desenvolvedor(a) na Biblioteca Pública Metropolitana. A bibliotecária-chefe solicitou um novo recurso para o catálogo online: exibir estatísticas de avaliação de cada livro para ajudar os usuários a fazer escolhas de leitura mais informadas. Atualmente, o sistema armazena avaliações individuais na tabela book_reviews; no entanto, não há como ver o número total de avaliações que um livro recebeu nem sua nota média.

Sua tarefa é escrever uma consulta que resuma os dados das avaliações, calculando o número total de avaliações e a nota média de cada livro.

Este exercício faz parte do curso

Consultando um banco de dados PostgreSQL em Java

Ver curso

Instruções do exercício

  • Complete a consulta para contar o número de avaliações e calcular a nota média.
  • Agrupe os resultados por book_id para obter as estatísticas de cada livro.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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 e executar o código