Bắt đầu ngayBắt đầu miễn phí

Lọc các nhóm

Tính năng thống kê đánh giá mới của Metropolitan Public Library đang rất được ưa chuộng! Tuy nhiên, độc giả phàn nàn rằng những cuốn sách chỉ có một hoặc hai bài đánh giá có thể cho ra mức trung bình gây hiểu lầm. Một cuốn sách chỉ có một đánh giá 5 sao lại hiển thị ngang với một tác phẩm kinh điển được yêu thích với hàng trăm đánh giá tích cực.

Giám đốc thư viện đề nghị bạn nâng cấp hệ thống để người dùng có thể lọc bỏ những cuốn sách có quá ít bài đánh giá.

Bài tập này là một phần của khóa học

Truy vấn cơ sở dữ liệu PostgreSQL trong Java

Xem khóa học

Hướng dẫn bài tập

  • Hoàn thiện truy vấn để lọc các sách theo số lượng bài đánh giá chỉ định.
  • Thiết lập tham số một cách an toàn để chỉ hiển thị các sách có ít nhất ba bài đánh giá.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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"));
                }
            }
        }
    }
}
Chỉnh sửa và Chạy Mã