Filtrování skupin
Nová funkce s hodnocením knih v Metropolitní veřejné knihovně sklidila velký úspěch! Čtenáři si ale stěžují, že knihy s pouhým jedním nebo dvěma recenzemi mohou mít zavádějící průměr. Kniha s jediným hodnocením 5 hvězdiček vypadá stejně dobře jako oblíbený klasik se stovkami pozitivních recenzí.
Ředitel knihovny tě požádal, aby sis systém vylepšil/a tak, aby uživatelé mohli filtrovat knihy s nedostatečným počtem recenzí.
Toto cvičení je součástí kurzu
Dotazování PostgreSQL databáze v Javě
Pokyny k cvičení
- Dokonči dotaz tak, aby filtroval knihy podle zadaného počtu recenzí.
- Bezpečně nastav parametr tak, aby se zobrazovaly pouze knihy s alespoň třemi recenzemi.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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"));
}
}
}
}
}