Tóm tắt dữ liệu
Bạn là một lập trình viên tại Thư viện Công cộng Metropolitan. Thủ thư trưởng yêu cầu bổ sung một tính năng cho mục lục trực tuyến: hiển thị thống kê đánh giá cho từng cuốn sách để giúp bạn đọc lựa chọn sáng suốt hơn. Hiện tại, hệ thống lưu các đánh giá riêng lẻ trong bảng book_reviews; tuy nhiên, chưa có cách nào để xem tổng số lượt đánh giá mà một cuốn sách nhận được hoặc điểm trung bình của nó.
Nhiệm vụ của bạn là viết một truy vấn tóm tắt dữ liệu đánh giá bằng cách tính tổng số lượt đánh giá và điểm trung bình cho mỗi cuốn sách.
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 để đếm số lượt đánh giá và tính điểm đánh giá trung bình.
- Nhóm kết quả theo
book_idđể lấy thống kê cho từng cuốn sách.
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 = """
-- 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"));
}
}
}
}