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

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

Xem khóa học

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