Memfilter grup
Fitur statistik penilaian baru milik Metropolitan Public Library mendapat sambutan hangat! Namun, para pengunjung mengeluhkan bahwa buku dengan hanya satu atau dua ulasan dapat menghasilkan rata-rata yang menyesatkan. Sebuah buku dengan satu ulasan bintang 5 tampak sama tinggi nilainya dengan karya klasik yang dicintai banyak orang dengan ratusan ulasan positif.
Direktur perpustakaan meminta Anda meningkatkan sistem dengan memungkinkan pengguna menyaring buku-buku yang jumlah ulasannya tidak memadai.
Latihan ini adalah bagian dari kursus
Melakukan Query ke Basis Data PostgreSQL di Java
Petunjuk latihan
- Lengkapi kueri untuk memfilter buku berdasarkan jumlah ulasan yang ditentukan.
- Atur parameter secara aman agar hanya menampilkan buku dengan minimal tiga ulasan.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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"));
}
}
}
}
}