Condividi tramite


Procedura: Definizione di condizioni per i gruppi (Visual Database Tools)

Per limitare i gruppi presenti in una query, è possibile specificare una condizione applicabile ai gruppi come insieme, ossia una clausola HAVING. Dopo il raggruppamento e l'aggregazione dei dati, vengono applicate le condizioni nella clausola HAVING. Nella query verranno inseriti solo i gruppi che soddisfano le condizioni.

Può ad esempio essere necessario visualizzare il prezzo medio di tutti i libri di ciascun editore nella tabella titles, ma solo se il prezzo medio è maggiore di 10 dollari. In questo caso, è possibile specificare una clausola HAVING con una condizione quale AVG(price) > 10.

[!NOTA]

In alcuni casi, può essere necessario escludere singole righe dai gruppi prima di applicare una condizione a tutti i gruppi. Per informazioni dettagliate, vedere Procedura: Utilizzo delle clausole HAVING e WHERE nella stessa query (Visual Database Tools).

È possibile creare condizioni complesse per una clausola HAVING utilizzando AND e OR per collegare le condizioni. Per informazioni dettagliate sull'utilizzo degli operatori AND e OR nelle condizioni di ricerca, vedere Procedura: Definizione di più condizioni di ricerca per una sola colonna (Visual Database Tools).

Per specificare una condizione per un gruppo

  1. Specificare i gruppi per la query. Per informazioni dettagliate, vedere Procedura: Raggruppamento di righe nei risultati di una query (Visual Database Tools).

  2. Se necessario, aggiungere nel riquadro Criteri la colonna su cui si desidera basare la condizione. In genere la condizione riguarda una colonna che fa già parte di un gruppo o di un riepilogo. Non è possibile utilizzare una colonna che non fa parte di una funzione di aggregazione o della clausola GROUP BY.

  3. Nella colonna Filtro specificare la condizione da applicare al gruppo.

    In Progettazione query e Progettazione viste verrà creata automaticamente una clausola HAVING nell'istruzione del riquadro SQL, come nell'esempio seguente:

    SELECT pub_id, AVG(price)
    FROM titles
    GROUP BY pub_id
    HAVING (AVG(price) > 10)
    
  4. Ripetere i passaggi 2 e 3 per tutte le altre condizioni da specificare.