Фільтрування груп
Нова функція статистики оцінок у Metropolitan Public Library має успіх! Проте відвідувачі скаржаться, що книжки лише з одним-двома відгуками можуть мати оманливі середні бали. Книжка з єдиним 5-зірковим відгуком виглядає так само високо оціненою, як улюблена класика з сотнями позитивних рецензій.
Директор бібліотеки попросив вас удосконалити систему, щоб користувачі могли відфільтровувати книжки з недостатньою кількістю відгуків.
Ця вправа є частиною курсу
Запити до бази даних PostgreSQL у Java
Інструкції до вправи
- Доповніть запит, щоб фільтрувати книжки за вказаною кількістю відгуків.
- Надійно встановіть параметр, щоб показувати лише книжки щонайменше з трьома відгуками.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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"));
}
}
}
}
}