Grupları filtreleme
Metropolitan Halk Kütüphanesi'nin yeni puanlama istatistikleri özelliği çok beğenildi! Ancak kullanıcılar, yalnızca bir veya iki yorumu olan kitapların yanıltıcı ortalamalara sahip olabildiğinden şikâyet ediyor. Tek bir 5 yıldızlı yorumu olan bir kitap, yüzlerce olumlu yorumu bulunan, çok sevilen bir klasikle aynı derecede yüksek puanlanmış görünebiliyor.
Kütüphane müdürü, yetersiz yoruma sahip kitapları kullanıcıların filtreleyebilmesi için sistemi geliştirmeni istedi.
Bu egzersiz
Java ile PostgreSQL Veritabanına Sorgu Yazma
kursunun bir parçasıdırEgzersiz talimatları
- Belirtilen yorum sayısına göre kitapları filtrelemek için sorguyu tamamla.
- Parametreyi güvenli şekilde ayarlayarak, en az üç yorumu olan kitapların görüntülenmesini sağla.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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"));
}
}
}
}
}