ПочатиПочніть безкоштовно

Підсумовування даних

Ви працюєте розробником у 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"));
            }
        }
    }
}
Редагувати та запускати код