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
Instrucțiuni pentru exercițiu
- Completează interogarea pentru a număra recenziile și a calcula ratingul mediu.
- Grupează rezultatele după
book_idpentru 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"));
}
}
}
}