Funzioni di aggregazione canonicheAggregate Canonical Functions

Le aggregazioni sono espressioni che riducono una serie di valori di input, ad esempio, in un singolo valore.Aggregates are expressions that reduce a series of input values into, for example, a single value. In genere, vengono usate insieme alla clausola GROUP BY dell'espressione SELECT. Il relativo uso è tuttavia soggetto ad alcuni vincoli.Aggregates are normally used in conjunction with the GROUP BY clause of the SELECT expression, and there are constraints on where they can be used.

Nella tabella seguente sono illustrate le funzioni canoniche di aggregazione Entity SQLEntity SQL.The following table shows the aggregate Entity SQLEntity SQL canonical functions.

FunzioneFunction DescrizioneDescription
Avg(expression) Restituisce la media dei valori non Null.Returns the average of the non-null values.

ArgomentiArguments

Un Int32, Int64, Double, e Decimal.An Int32, Int64, Double, and Decimal.

Valore restituitoReturn Value

Tipo di expression.The type of expression. Null, se tutti i valori di input sono valori null.Null, if all input values are null values.

Esempio
queryString = @"SELECT VALUE AVG(p.ListPrice) 
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE AVG(p.ListPrice) 
FROM AdventureWorksEntities.Products AS p 
Example
queryString = @"SELECT VALUE AVG(p.ListPrice) 
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE AVG(p.ListPrice) 
FROM AdventureWorksEntities.Products AS p 
BigCount(expression) Restituisce la dimensione dell'aggregazione, inclusi i valori Null e duplicati.Returns the size of the aggregate including null and duplicate values.

ArgomentiArguments

Qualsiasi tipo.Any type.

Valore restituitoReturn Value

Oggetto Int64.An Int64.

Esempio
queryString = @"SELECT VALUE BigCount(p.ProductID) 
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE BigCount(p.ProductID) 
FROM AdventureWorksEntities.Products AS p 
Example
queryString = @"SELECT VALUE BigCount(p.ProductID) 
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE BigCount(p.ProductID) 
FROM AdventureWorksEntities.Products AS p 
Count(expression) Restituisce la dimensione dell'aggregazione, inclusi i valori Null e duplicati.Returns the size of the aggregate including null and duplicate values.

ArgomentiArguments

Qualsiasi tipo.Any type.

Valore restituitoReturn Value

Oggetto Int32.An Int32.

Esempio
queryString = @"SELECT VALUE Count(p.ProductID) 
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE Count(p.ProductID) 
FROM AdventureWorksEntities.Products AS p 
Example
queryString = @"SELECT VALUE Count(p.ProductID) 
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE Count(p.ProductID) 
FROM AdventureWorksEntities.Products AS p 
Max(expression) Restituisce il numero massimo di valori non Null.Returns the maximum of the non-null values.

ArgomentiArguments

Valore Byte, Int16, Int32, Int64, Byte, Single, Double, Decimal, DateTime, DateTimeOffset, Time, String, Binary.A Byte, Int16, Int32, Int64, Byte, Single, Double, Decimal, DateTime, DateTimeOffset, Time, String, Binary.

Valore restituitoReturn Value

Tipo di expression.The type of expression. Null, se tutti i valori di input sono valori null.Null, if all input values are null values.

Esempio
queryString = @"SELECT VALUE MAX(p.ListPrice) 
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE MAX(p.ListPrice) 
FROM AdventureWorksEntities.Products AS p 
Example
queryString = @"SELECT VALUE MAX(p.ListPrice) 
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE MAX(p.ListPrice) 
FROM AdventureWorksEntities.Products AS p 
Min(expression) Restituisce il numero minimo di valori non Null.Returns the minimum of the non-null values.

ArgomentiArguments

Valore Byte, Int16, Int32, Int64, Byte, Single, Double, Decimal, DateTime, DateTimeOffset, Time, String, Binary.A Byte, Int16, Int32, Int64, Byte, Single, Double, Decimal, DateTime, DateTimeOffset, Time, String, Binary.

Valore restituitoReturn Value

Tipo di expression.The type of expression. Null, se tutti i valori di input sono valori null.Null, if all input values are null values.

Esempio
queryString = @"SELECT VALUE MIN(p.ListPrice) 
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE MIN(p.ListPrice) 
FROM AdventureWorksEntities.Products AS p 
Example
queryString = @"SELECT VALUE MIN(p.ListPrice) 
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE MIN(p.ListPrice) 
FROM AdventureWorksEntities.Products AS p 
StDev(expression) Restituisce la deviazione standard dei valori non Null.Returns the standard deviation of the non-null values.

ArgomentiArguments

Valore Int32, Int64, Double, Decimal.An Int32, Int64, Double, Decimal.

Valore restituitoReturn Value

Oggetto Double.A Double. Null, se tutti i valori di input sono valori null.Null, if all input values are null values.

Esempio
queryString = @"SELECT VALUE StDev(product.ListPrice) 
    FROM AdventureWorksEntities.Products AS product 
    WHERE product.ListPrice > @price";
SELECT VALUE StDev(product.ListPrice) 
FROM AdventureWorksEntities.Products AS product 
WHERE product.ListPrice > @price
Example
queryString = @"SELECT VALUE StDev(product.ListPrice) 
    FROM AdventureWorksEntities.Products AS product 
    WHERE product.ListPrice > @price";
SELECT VALUE StDev(product.ListPrice) 
FROM AdventureWorksEntities.Products AS product 
WHERE product.ListPrice > @price
StDevP(expression) Restituisce la deviazione standard della popolazione di tutti i valori.Returns the standard deviation for the population of all values.

ArgomentiArguments

Valore Int32, Int64, Double, Decimal.An Int32, Int64, Double, Decimal.

Valore restituitoReturn Value

Oggetto Double.A Double. Null, se tutti i valori di input sono valori null.Null, if all input values are null values.

Esempio
queryString = @"SELECT VALUE StDevP(product.ListPrice) 
    FROM AdventureWorksEntities.Products AS product 
    WHERE product.ListPrice > @price";
SELECT VALUE StDevP(product.ListPrice) 
FROM AdventureWorksEntities.Products AS product 
WHERE product.ListPrice > @price
Example
queryString = @"SELECT VALUE StDevP(product.ListPrice) 
    FROM AdventureWorksEntities.Products AS product 
    WHERE product.ListPrice > @price";
SELECT VALUE StDevP(product.ListPrice) 
FROM AdventureWorksEntities.Products AS product 
WHERE product.ListPrice > @price
Sum(expression) Restituisce la somma dei valori non Null.Returns the sum of the non-null values.

ArgomentiArguments

Valore Int32, Int64, Double, Decimal.An Int32, Int64, Double, Decimal.

Valore restituitoReturn Value

Oggetto Double.A Double. Null, se tutti i valori di input sono valori null.Null, if all input values are null values.

Esempio
queryString = @"SELECT VALUE Sum(p.ListPrice) 
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE Sum(p.ListPrice) 
FROM AdventureWorksEntities.Products AS p 
Example
queryString = @"SELECT VALUE Sum(p.ListPrice) 
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE Sum(p.ListPrice) 
FROM AdventureWorksEntities.Products AS p 
Var(expression) Restituisce la varianza di tutti i valori non Null.Returns the variance of all non-null values.

ArgomentiArguments

Valore Int32, Int64, Double, Decimal.An Int32, Int64, Double, Decimal.

Valore restituitoReturn Value

Oggetto Double.A Double. Null, se tutti i valori di input sono valori null.Null, if all input values are null values.

Esempio
queryString = @"SELECT VALUE Var(product.ListPrice) 
    FROM AdventureWorksEntities.Products AS product 
    WHERE product.ListPrice > @price";
SELECT VALUE Var(product.ListPrice) 
FROM AdventureWorksEntities.Products AS product 
WHERE product.ListPrice > @price
Example
queryString = @"SELECT VALUE Var(product.ListPrice) 
    FROM AdventureWorksEntities.Products AS product 
    WHERE product.ListPrice > @price";
SELECT VALUE Var(product.ListPrice) 
FROM AdventureWorksEntities.Products AS product 
WHERE product.ListPrice > @price
VarP(expression) Restituisce la varianza della popolazione di tutti i valori non Null.Returns the variance for the population of all non-null values.

ArgomentiArguments

Valore Int32, Int64, Double, Decimal.An Int32, Int64, Double, Decimal.

Valore restituitoReturn Value

Oggetto Double.A Double. Null, se tutti i valori di input sono valori null.Null, if all input values are null values.

Esempio
queryString = @"SELECT VALUE VarP(product.ListPrice) 
    FROM AdventureWorksEntities.Products AS product 
    WHERE product.ListPrice > @price";
SELECT VALUE VarP(product.ListPrice) 
FROM AdventureWorksEntities.Products AS product 
WHERE product.ListPrice > @price
Example
queryString = @"SELECT VALUE VarP(product.ListPrice) 
    FROM AdventureWorksEntities.Products AS product 
    WHERE product.ListPrice > @price";
SELECT VALUE VarP(product.ListPrice) 
FROM AdventureWorksEntities.Products AS product 
WHERE product.ListPrice > @price

Una funzionalità equivalente è disponibile nel provider gestito del client Microsoft SQL.Equivalent functionality is available in the Microsoft SQL Client Managed Provider. Per ulteriori informazioni, vedere SqlClient per funzioni Entity Framework.For more information, see SqlClient for Entity Framework Functions.

Aggregazioni basate sulle raccolteCollection-based aggregates

Le aggregazioni basate su raccolte (funzioni della Collection) operano sulle raccolte e restituiscono un valore.Collection-based aggregates (collection functions) operate on collections and return a value. Ad esempio se ORDERS è una raccolta di tutti gli ordini, è possibile calcolare la prima data di spedizione con l'espressione seguente:For example if ORDERS is a collection of all orders, you can calculate the earliest ship date with the following expression:

min(select value o.ShipDate from LOB.Orders as o)

Le espressioni all'interno di aggregazioni basate su raccolte vengono valutate nell'ambito di risoluzione dei nomi di ambiente corrente.Expressions inside collection-based aggregates are evaluated within the current ambient name-resolution scope.

Aggregazioni basate su gruppoGroup-based aggregates

Le aggregazioni basate su gruppo vengono calcolate su un gruppo definito dalla clausola GROUP BY.Group-based aggregates are calculated over a group as defined by the GROUP BY clause. Per ogni gruppo nel risultato viene calcolata un'aggregazione distinta usando gli elementi in ciascun gruppo come input nel calcolo dell'aggregazione.For each group in the result, a separate aggregate is calculated by using the elements in each group as input to the aggregate calculation. Quando in un'espressione selezionata viene usata una clausola GROUP BY, nella proiezione o nella clausola ORDER BY possono essere presenti solo nomi di espressioni di raggruppamento, aggregazioni o espressioni costanti.When a group-by clause is used in a select expression, only grouping expression names, aggregates, or constant expressions can be present in the projection or order-by clause.

Nell'esempio seguente viene calcolata la quantità media ordinata per ciascun prodotto:The following example calculates the average quantity ordered for each product:

select p, avg(ol.Quantity) from LOB.OrderLines as ol 
  group by ol.Product as p

È possibile disporre di un'aggregazione basata su gruppo senza una clausola group by esplicita nell'espressione SELECT.It's possible to have a group-based aggregate without an explicit group-by clause in the SELECT expression. In questo caso, tutti gli elementi vengono considerati un unico gruppo.In this case, all elements are treated as a single group. Questo è equivalente della specifica di un raggruppamento basato su una costante.This is equivalent of specifying a grouping based on a constant. Si consideri, ad esempio, l'espressione seguente:Take, for example, the following expression:

select avg(ol.Quantity) from LOB.OrderLines as ol

L'espressione equivale alla seguente:This is equivalent to the following:

select avg(ol.Quantity) from LOB.OrderLines as ol group by 1

Le espressioni all'interno dell'aggregazione basata su gruppo vengono valutate nell'ambito della risoluzione dei nomi visibile per l'espressione della clausola WHERE.Expressions inside the group-based aggregate are evaluated within the name-resolution scope that would be visible to the WHERE clause expression.

Come in Transact-SQLTransact-SQL, aggregazioni basate su gruppo è possono specificare anche un ALL o DISTINCT modificatore.As in Transact-SQLTransact-SQL, group-based aggregates can also specify an ALL or DISTINCT modifier. Se è specificato il modificatore DISTINCT, eventuali duplicati vengono eliminati dalla raccolta di input di aggregazione prima del calcolo dell'aggregazione.If the DISTINCT modifier is specified, duplicates are eliminated from the aggregate input collection, before the aggregate is computed. Se è specificato il modificatore ALL o se non è specificato alcun modificatore, non viene eseguita l'eliminazione dei duplicati.If the ALL modifier is specified (or if no modifier is specified), no duplicate elimination is performed.

Vedere ancheSee also

Funzioni canonicheCanonical Functions