ÎncepețiÎncepe gratuit

Filtrarea grupurilor

Noua funcționalitate de statistici pentru recenzii de la Biblioteca Publică Metropolitană a fost primită cu entuziasm! Totuși, cititorii s-au plâns că cărțile cu una sau două recenzii pot avea medii înșelătoare. O carte cu o singură recenzie de 5 stele apare ca fiind la fel de bine cotată ca un clasic îndrăgit, cu sute de recenzii pozitive.

Directorul bibliotecii ți-a cerut să îmbunătățești sistemul, permițând utilizatorilor să excludă cărțile cu un număr insuficient de recenzii.

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 filtra cărțile în funcție de un număr specificat de recenzii.
  • Setează parametrul în mod securizat astfel încât să afișeze doar cărțile cu cel puțin trei recenzii.

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