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, kursun bir parçasıdır
Java ile PostgreSQL Veritabanına Sorgu Yazma
Egzersiz 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ı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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"));
}
}
}
}
}