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, expression
vagy 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
. DateTime
Binary
DateTimeOffset
Time
String
Visszaadott érték
A típus, expression
vagy 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
. DateTime
Binary
DateTimeOffset
Time
String
Visszaadott érték
A típus, expression
vagy 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.