Condividi tramite


Clausola HAVING (SQL Server Compact)

Specifica una condizione di ricerca per un gruppo o un aggregato. La clausola HAVING viene in genere utilizzata con la clausola GROUP BY.

Sintassi

[ HAVING < search_condition > ] 

Argomenti

  • < search_condition >
    Specifica la condizione di ricerca che deve essere soddisfatta dal gruppo. La condizione di ricerca può contenere espressioni di aggregazione e non di aggregazione. Nelle espressioni non di aggregazione possono essere utilizzate soltanto le colonne specificate come colonne di raggruppamento nella clausola GROUP BY. Tali colonne rappresentano infatti proprietà comuni per l'intero gruppo. Analogamente, le espressioni di aggregazione rappresentano una proprietà comune per l'intero gruppo. La condizione di ricerca della clausola HAVING esprime un predicato relativo alle proprietà del gruppo.

    In una clausola HAVING non possono essere utilizzati i tipi di dati image e ntext.

Osservazioni

Le seguenti query sono consentite in SQL Server, ma non in SQL Server Compact 3.5 e causano la visualizzazione del seguente messaggio di errore: "Nelle espressioni di aggregazione e di raggruppamento, la clausola HAVING può contenere solo funzioni di aggregazione ed espressioni di raggruppamento".

select count(*), c1+c2 from s1 group by c1+c2 having c1+c2 <10; 
select count(*), x from (select *, col1 + col2 as x from oj1) d group by x having x <4;

Tuttavia, queste query sono consentite in SQL Server Compact 3.5 se una semplice variabile di colonna viene utilizzata al posto di un'espressione, come (c1+c2).

Esempio

Nel seguente esempio viene restituito un elenco di tutti i prodotti con un conteggio totale maggiore (>) di 50.

SELECT [Product ID], COUNT(*) AS Total FROM [Order Details] GROUP BY [Product ID] HAVING (COUNT(*) > 50)