Фильтрация групп
Новая функция статистики рейтингов в Столичной публичной библиотеке пользуется большим успехом! Однако читатели пожаловались, что книги с одним-двумя отзывами могут иметь вводящий в заблуждение средний балл. Книга с единственной пятизвёздочной оценкой выглядит столь же высоко оценённой, что и любимая классика с сотнями положительных отзывов.
Директор библиотеки попросил вас улучшить систему, добавив возможность исключать из результатов книги с недостаточным количеством отзывов.
Это упражнение является частью курса
Работа с базой данных 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"));
}
}
}
}
}