เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

สรุปข้อมูล

คุณเป็นนักพัฒนาของห้องสมุดสาธารณะแห่งหนึ่ง หัวหน้าบรรณารักษ์ต้องการเพิ่มฟีเจอร์ใหม่ในแคตตาล็อกออนไลน์ ได้แก่ การแสดงสถิติคะแนนของแต่ละหนังสือ เพื่อช่วยให้ผู้ใช้บริการตัดสินใจเลือกอ่านได้อย่างมีข้อมูลประกอบ ปัจจุบันระบบเก็บรีวิวแต่ละรายการไว้ในตาราง book_reviews แต่ยังไม่มีวิธีดูจำนวนรีวิวทั้งหมดหรือคะแนนเฉลี่ยของหนังสือแต่ละเล่ม

ภารกิจของคุณคือเขียนคิวรีที่สรุปข้อมูลรีวิว โดยคำนวณจำนวนรีวิวทั้งหมดและคะแนนเฉลี่ยสำหรับหนังสือแต่ละเล่ม

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การคิวรีฐานข้อมูล PostgreSQL ด้วย Java

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เติมโค้ดในคิวรีเพื่อนับจำนวนรีวิวและคำนวณค่าเฉลี่ยของคะแนน
  • จัดกลุ่มผลลัพธ์ตาม book_id เพื่อดูสถิติของหนังสือแต่ละเล่ม

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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"));
            }
        }
    }
}
แก้ไขและรันโค้ด