Підсумовування даних
Ви працюєте розробником у Metropolitan Public Library. Головна бібліотекарка попросила додати нову функцію до онлайн‑каталогу: показувати статистику оцінок для кожної книжки, щоб допомогти відвідувачам робити виважений вибір. Наразі система зберігає окремі відгуки в таблиці book_reviews; однак немає способу побачити загальну кількість відгуків, які отримала книжка, або її середню оцінку.
Ваше завдання — написати запит, який підсумує дані відгуків, обчисливши загальну кількість відгуків і середню оцінку для кожної книжки.
Ця вправа є частиною курсу
Запити до бази даних PostgreSQL у Java
Інструкції до вправи
- Доповніть запит, щоб підрахувати кількість відгуків і обчислити середню оцінку.
- Згрупуйте результати за
book_id, щоб отримати статистику для кожної книжки.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
public class Main {
public static void main(String[] args) throws SQLException {
HikariDataSource ds = HikariSetup.createDataSource();
String query = """
-- Count the number of reviews and the average rating
SELECT book_id, ____(*), ____(rating)
FROM book_reviews
-- Group reviews by book_id
____ ____ ____;
""";
try (Connection conn = ds.getConnection();
PreparedStatement pstmt = conn.prepareStatement(query);
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"));
}
}
}
}