Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Agregações são expressões que reduzem uma série de valores de entrada em, por exemplo, um único valor. As agregações normalmente são usadas em conjunto com a cláusula GROUP BY da expressão SELECT e há restrições sobre onde elas podem ser usadas.
Funções canônicas de SQL de entidade agregada
A seguir, as funções canônicas de agregação do Entity SQL.
Avg (expressão)
Retorna a média dos valores não nulos.
argumentos
Um Int32, Int64, Double e Decimal.
valor retornado
O tipo de expression, ou null se todos os valores de entrada são valores null.
Exemplo
queryString = @"SELECT VALUE AVG(p.ListPrice)
FROM AdventureWorksEntities.Products as p";
SELECT VALUE AVG(p.ListPrice)
FROM AdventureWorksEntities.Products AS p
BigCount (expressão)
Retorna o tamanho da agregação, incluindo valores nulos e duplicados.
argumentos
Qualquer tipo.
valor retornado
Um Int64.
Exemplo
queryString = @"SELECT VALUE BigCount(p.ProductID)
FROM AdventureWorksEntities.Products as p";
SELECT VALUE BigCount(p.ProductID)
FROM AdventureWorksEntities.Products AS p
Contagem (expressão)
Retorna o tamanho da agregação, incluindo valores nulos e duplicados.
argumentos
Qualquer tipo.
valor retornado
Um Int32.
Exemplo
queryString = @"SELECT VALUE Count(p.ProductID)
FROM AdventureWorksEntities.Products as p";
SELECT VALUE Count(p.ProductID)
FROM AdventureWorksEntities.Products AS p
Máximo (expressão)
Retorna o máximo dos valores não nulos.
argumentos
AByte, Int16, Int32, Int64, , Byte, Single, , Double, Decimal, DateTime, DateTimeOffset, , Time, String. Binary
valor retornado
O tipo de expression, ou null se todos os valores de entrada são valores null.
Exemplo
queryString = @"SELECT VALUE MAX(p.ListPrice)
FROM AdventureWorksEntities.Products as p";
SELECT VALUE MAX(p.ListPrice)
FROM AdventureWorksEntities.Products AS p
Minuto (expressão)
Retorna o mínimo dos valores não nulos.
argumentos
AByte, Int16, Int32, Int64, , Byte, Single, , Double, Decimal, DateTime, DateTimeOffset, , Time, String. Binary
valor retornado
O tipo de expression, ou null se todos os valores de entrada são valores null.
Exemplo
queryString = @"SELECT VALUE MIN(p.ListPrice)
FROM AdventureWorksEntities.Products as p";
SELECT VALUE MIN(p.ListPrice)
FROM AdventureWorksEntities.Products AS p
StDev (expressão)
Retorna o desvio padrão dos valores não nulos.
argumentos
Int32, Int64, Double, Decimal.
valor retornado
Um Double.
Null, se todos os valores de entrada são valores de null .
Exemplo
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 (expressão)
Retorna o desvio padrão para a população de todos os valores.
argumentos
Int32, Int64, Double, Decimal.
valor retornado
Um Double ou null se todos os valores de entrada são valores de null.
Exemplo
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
Soma (expressão)
Retorna a soma dos valores não nulos.
argumentos
Int32, Int64, Double, Decimal.
valor retornado
Um Double ou null se todos os valores de entrada são valores de null.
Exemplo
queryString = @"SELECT VALUE Sum(p.ListPrice)
FROM AdventureWorksEntities.Products as p";
SELECT VALUE Sum(p.ListPrice)
FROM AdventureWorksEntities.Products AS p
Var (expressão)
Retorna a variação de todos os valores não nulos.
argumentos
Int32, Int64, Double, Decimal.
valor retornado
Um Double ou null se todos os valores de entrada são valores de null.
Exemplo
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 (expressão)
Retorna a variação para a população de todos os valores não nulos.
argumentos
Int32, Int64, Double, Decimal.
valor retornado
Um Double ou null se todos os valores de entrada são valores de null.
Exemplo
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
Funcionalidade equivalente está disponível no provedor gerenciado cliente do Microsoft SQL. Para obter mais informações, consulte SqlClient para funções do Entity Framework.
Agregações baseadas em coleção
As agregações baseadas em coleção (funções de coleção) operam em coleções e retornam um valor. Por exemplo, se ORDERS for uma coleção de todos os pedidos, você poderá calcular a data de envio mais antiga com a seguinte expressão:
min(select value o.ShipDate from LOB.Orders as o)
Agregados coleções baseadas dentro de expressões são avaliadas dentro do escopo ambiente atual de resolução.
Agregações baseadas em grupo
As agregações baseadas em grupo são calculadas em um grupo, conforme definido pela cláusula GROUP BY. Para cada grupo no resultado, uma agregação separada é calculada usando os elementos em cada grupo como entrada para o cálculo de agregação. Quando a grupo- pela cláusula é usado em uma expressão selecionar, simplesmente agrupamento nomes de expressão, agregados, ou expressões constantes podem acessar estar presente na projeção ou ordem- pela cláusula.
O exemplo a seguir calcula a quantidade média ordenada para cada produto:
select p, avg(ol.Quantity) from LOB.OrderLines as ol
group by ol.Product as p
É possível ter uma agregação baseada em grupo sem uma cláusula group-by explícita na expressão SELECT. Nesse caso, todos os elementos são tratados como um único grupo. Isso equivale a especificar um agrupamento com base em uma constante. Veja, por exemplo, a seguinte expressão:
select avg(ol.Quantity) from LOB.OrderLines as ol
Isso é equivalente ao seguinte:
select avg(ol.Quantity) from LOB.OrderLines as ol group by 1
As expressões na agregação grupo- base são avaliadas dentro do escopo de resolução que seria visível para a cláusula WHERE expressão.
Assim como no Transact-SQL, as agregações baseadas em grupo também podem especificar um modificador ALL ou DISTINCT. Se o modificador DISTINCT for especificado, as duplicatas serão eliminadas da coleção de entrada de agregação, antes que a agregação seja computada. Se o modificador ALL for especificado (ou se nenhum modificador for especificado), nenhuma eliminação duplicada será executada.