Megosztás a következőn keresztül:


Canonical Functions összesítése

Az aggregátumok olyan kifejezések, amelyek a bemeneti értékek sorozatát például egyetlen értékre csökkentik. Az összesítéseket általában a Standard kiadás LECT kifejezés GROUP BY záradékával együtt használják, és vannak korlátozások arra, hogy hol használhatók.

Entity SQL kanonikus függvények összesítése

Az alábbiakban az összesítő Entity SQL kanonikus függvények szerepelnek.

Avg(kifejezés)

A nem null értékek átlagát adja eredményül.

Argumentumok

An Int32, Int64, Doubleés Decimal.

Visszaadott érték

A típus, expressionvagy null ha minden bemeneti érték null érték.

Példa

queryString = @"SELECT VALUE AVG(p.ListPrice)
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE AVG(p.ListPrice) 
FROM AdventureWorksEntities.Products AS p 

BigCount(kifejezés)

Az aggregátum méretét adja vissza, beleértve a null és duplikált értékeket is.

Argumentumok

Bármilyen típus.

Visszaadott érték

Egy Int64.

Példa

queryString = @"SELECT VALUE BigCount(p.ProductID)
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE BigCount(p.ProductID) 
FROM AdventureWorksEntities.Products AS p 

Darabszám(kifejezés)

Az aggregátum méretét adja vissza, beleértve a null és duplikált értékeket is.

Argumentumok

Bármilyen típus.

Visszaadott érték

Egy Int32.

Példa

queryString = @"SELECT VALUE Count(p.ProductID)
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE Count(p.ProductID) 
FROM AdventureWorksEntities.Products AS p 

Max(kifejezés)

A nem null értékek maximális értékét adja eredményül.

Argumentumok

A Byte, Int16, Int32, Int64, Byte, Single, Double, Decimal. DateTimeBinaryDateTimeOffsetTimeString

Visszaadott érték

A típus, expressionvagy null ha minden bemeneti érték null érték.

Példa

queryString = @"SELECT VALUE MAX(p.ListPrice)
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE MAX(p.ListPrice) 
FROM AdventureWorksEntities.Products AS p 

Min(kifejezés)

A nem null értékek minimális értékét adja vissza.

Argumentumok

A Byte, Int16, Int32, Int64, Byte, Single, Double, Decimal. DateTimeBinaryDateTimeOffsetTimeString

Visszaadott érték

A típus, expressionvagy null ha minden bemeneti érték null érték.

Példa

queryString = @"SELECT VALUE MIN(p.ListPrice)
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE MIN(p.ListPrice) 
FROM AdventureWorksEntities.Products AS p 

StDev(kifejezés)

A nem null értékek szórását adja vissza.

Argumentumok

An Int32, Int64, Double, Decimal.

Visszaadott érték

A Double. Null, ha az összes bemeneti érték null érték.

Példa

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(kifejezés)

Az összes érték sokaságának szórását adja vissza.

Argumentumok

An Int32, Int64, Double, Decimal.

Visszaadott érték

A Double, vagy null ha minden bemeneti érték null érték.

Példa

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(kifejezés)

A nem null értékek összegét adja vissza.

Argumentumok

An Int32, Int64, Double, Decimal.

Visszaadott érték

A Double, vagy null ha minden bemeneti érték null érték.

Példa

queryString = @"SELECT VALUE Sum(p.ListPrice)
    FROM AdventureWorksEntities.Products as p";
SELECT VALUE Sum(p.ListPrice) 
FROM AdventureWorksEntities.Products AS p 

Var(kifejezés)

Az összes nem null érték varianciáját adja vissza.

Argumentumok

An Int32, Int64, Double, Decimal.

Visszaadott érték

A Double, vagy null ha minden bemeneti érték null érték.

Példa

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(kifejezés)

A nem null értékek sokaságának varianciáját adja vissza.

Argumentumok

An Int32, Int64, Double, Decimal.

Visszaadott érték

A Double, vagy null ha minden bemeneti érték null érték.

Példa

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

Ezzel egyenértékű funkciók érhetők el a Microsoft SQL Ügyfél által felügyelt szolgáltatóban. További információ: SqlClient for Entity Framework Functions.

Gyűjteményalapú összesítések

A gyűjteményalapú összesítések (gyűjteményfüggvények) gyűjteményeken működnek, és értéket adnak vissza. Ha például az ORDERS az összes rendelés gyűjteménye, a legkorábbi szállítási dátumot a következő kifejezéssel számíthatja ki:

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

A gyűjteményalapú aggregátumokon belüli kifejezések kiértékelése az aktuális környezeti névfeloldási hatókörön belül történik.

Csoportalapú összesítések

A csoportalapú aggregátumok a GROUP BY záradék által meghatározott csoporton alapulnak. Az eredmény minden egyes csoportjához külön aggregátumot számítunk ki az egyes csoportok elemeinek az összesítési számítás bemeneteként való használatával. Ha egy kijelölési kifejezésben csoportosítási záradékot használ, csak a kifejezésnevek, összesítések vagy állandó kifejezések csoportosítása lehet jelen a leképezésben vagy a rendezési záradékban.

Az alábbi példa kiszámítja az egyes termékekhez rendelt átlagos mennyiséget:

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

A Standard kiadás LECT kifejezés explicit csoportosítási záradék nélkül is rendelkezhet csoportalapú összesítéssel. Ebben az esetben a rendszer minden elemet egyetlen csoportként kezel. Ez egyenértékű egy konstanson alapuló csoportosítás megadásával. Vegyük például a következő kifejezést:

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

Ez az alábbiaknak felel meg:

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

A csoportalapú aggregátumban lévő kifejezések kiértékelése a WHERE záradék kifejezés számára látható névfeloldási hatókörben történik.

A Transact-SQL-hez hasonlóan a csoportalapú aggregátumok is megadhatnak egy ALL vagy DISTINCT módosítót. Ha a DISTINCT módosító meg van adva, az összesítés kiszámítása előtt a rendszer eltávolítja az ismétlődéseket az összesített bemeneti gyűjteményből. Ha az ALL módosító meg van adva (vagy ha nincs megadva módosító), a rendszer nem végez ismétlődő törlést.

Lásd még