ÎncepețiÎncepe gratuit

Rezumarea datelor

Ești un dezvoltator la Biblioteca Publică Metropolitană. Bibliotecarul șef a solicitat o funcționalitate nouă pentru catalogul online: afișarea statisticilor de rating pentru fiecare carte, ca să îi ajute pe cititori să facă alegeri mai informate. În prezent, sistemul stochează recenziile individuale în tabelul book_reviews, însă nu există nicio modalitate de a vedea câte recenzii a primit o carte sau care este ratingul ei mediu.

Sarcina ta este să scrii o interogare care rezumă datele din recenzii, calculând numărul total de recenzii și ratingul mediu pentru fiecare carte.

Acest exercițiu face parte din cursul

Interogarea unei baze de date PostgreSQL în Java

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează interogarea pentru a număra recenziile și a calcula ratingul mediu.
  • Grupează rezultatele după book_id pentru a obține statistici pentru fiecare carte.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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"));
            }
        }
    }
}
Editează și rulează codul