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