Filtrando os grupos
O novo recurso de estatísticas de avaliações da Biblioteca Pública Metropolitana fez sucesso! No entanto, usuários reclamaram que livros com apenas uma ou duas avaliações podem gerar médias enganosas. Um livro com uma única avaliação de 5 estrelas pode parecer tão bem avaliado quanto um clássico adorado com centenas de avaliações positivas.
A diretora da biblioteca pediu que você melhore o sistema, permitindo que os usuários filtrem livros com avaliações insuficientes.
Este exercício faz parte do curso
Consultando um banco de dados PostgreSQL em Java
Instruções do exercício
- Complete a consulta para filtrar livros com um número específico de avaliações.
- Defina o parâmetro com segurança para exibir apenas livros com pelo menos três avaliações.
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 = """
SELECT book_id, COUNT(*), AVG(rating)
FROM book_reviews
GROUP BY book_id
-- Filter books with a specified number of reviews
____ count(*) >= ?
""";
try (Connection conn = ds.getConnection();
PreparedStatement pstmt = conn.prepareStatement(query)) {
// Display books with at least three reviews
pstmt.____(____, ____);
try (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"));
}
}
}
}
}