ComeçarComece de graça

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

Ver curso

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"));
                }
            }
        }
    }
}
Editar e executar o código