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