Aracılığıyla paylaş


Kurallı İşlevleri Toplama

Toplamalar, bir dizi giriş değerini tek bir değere düşüren ifadelerdir. Toplamalar normalde SELECT ifadesinin GROUP BY yan tümcesiyle birlikte kullanılır ve bunların nerede kullanılabileceğinin kısıtlamaları vardır.

Varlık SQL kurallı işlevlerini toplama

Aşağıda, toplam Entity SQL kurallı işlevleri yer alır.

Ortalama(ifade)

Null olmayan değerlerin ortalamasını döndürür.

Argümanlar

Bir Int32, Int64, Double, ve Decimal.

Dönüş Değeri

Türü expression, veya tüm giriş değerleri null ise null.

Örnek

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

BigCount(ifade)

Null ve yinelenen değerler dahil olmak üzere toplamanın boyutunu döndürür.

Argümanlar

Herhangi bir tür.

Dönüş Değeri

Bir Int64.

Örnek

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

Sayı(ifade)

Null ve yinelenen değerler dahil olmak üzere toplamanın boyutunu döndürür.

Argümanlar

Herhangi bir tür.

Dönüş Değeri

Bir Int32.

Örnek

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

Maks (ifade)

Null olmayan değerlerin üst sınırını döndürür.

Argümanlar

A Byte, Int16, Int32, , Int64, Byte, , Single, Double, Decimal, DateTimeDateTimeOffsetTimeString, . Binary

Dönüş Değeri

Türü expression, veya tüm giriş değerleri null ise null.

Örnek

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

Min(ifade)

Null olmayan değerlerin en düşük değerini döndürür.

Argümanlar

A Byte, Int16, Int32, , Int64, Byte, , Single, Double, Decimal, DateTimeDateTimeOffsetTimeString, . Binary

Dönüş Değeri

Türü expression, veya tüm giriş değerleri null ise null.

Örnek

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

StDev(ifade)

Null olmayan değerlerin standart sapması döndürür.

Argümanlar

Bir Int32, Int64, Double, Decimal.

Dönüş Değeri

bir Double. Null, tüm giriş değerleri null değerleriyse.

Örnek

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(ifade)

Tüm değerlerden oluşan popülasyonun standart sapmasını döndürür.

Argümanlar

Bir Int32, Int64, Double, Decimal.

Dönüş Değeri

Bir Double veya tüm giriş değerleri null ise null.

Örnek

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

Toplam(ifade)

Null olmayan değerlerin toplamını döndürür.

Argümanlar

Bir Int32, Int64, Double, Decimal.

Dönüş Değeri

Bir Double veya tüm giriş değerleri null ise null.

Örnek

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

Var(ifade)

Null olmayan tüm değerlerin varyansını döndürür.

Argümanlar

Bir Int32, Int64, Double, Decimal.

Dönüş Değeri

Bir Double veya tüm giriş değerleri null ise null.

Örnek

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(ifade)

Null olmayan tüm değerlerin popülasyonunun varyansını döndürür.

Argümanlar

Bir Int32, Int64, Double, Decimal.

Dönüş Değeri

Bir Double veya tüm giriş değerleri null ise null.

Örnek

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

Eşdeğer işlevler Microsoft SQL İstemcisi Yönetilen Sağlayıcısı'nda kullanılabilir. Daha fazla bilgi için bkz. Entity Framework İşlevleri için SqlClient.

Koleksiyon tabanlı birleşimler

Koleksiyon tabanlı toplamalar (koleksiyon işlevleri) koleksiyonlar üzerinde çalışır ve bir değer döndürür. Örneğin, ORDERS tüm siparişlerin koleksiyonuysa, aşağıdaki ifadeyle en erken sevk tarihini hesaplayabilirsiniz:

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

Koleksiyon tabanlı toplamalar içindeki ifadeler geçerli ortam adı çözümleme kapsamı içinde değerlendirilir.

Grup tabanlı toplamalar

Grup tabanlı toplamalar, GROUP BY yan tümcesi tarafından tanımlandığı şekilde bir grup üzerinde hesaplanır. Sonuçtaki her grup için, her gruptaki öğeler toplama hesaplamasına giriş olarak kullanılarak ayrı bir toplama hesaplanır. Bir select ifadesinde group-by yan tümcesi kullanıldığında, projeksiyon veya order-by yan tümcesinde yalnızca gruplandırma ifadesi adları, toplamlar veya sabit ifadeler bulunabilir.

Aşağıdaki örnek, her ürün için sipariş edilen ortalama miktarı hesaplar:

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

SELECT ifadesinde açık bir group-by yan tümcesi olmadan grup tabanlı bir toplamaya sahip olmak mümkündür. Bu durumda, tüm öğeler tek bir grup olarak değerlendirilir. Bu, bir sabiti temel alan bir gruplandırma belirtmekle eşdeğerdir. Örneğin, aşağıdaki ifadeyi alın:

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

Bu, aşağıdakilere eşdeğerdir:

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

Grup temelli toplama içindeki ifadeler, WHERE yan tümcesi ifadesi tarafından görülebilecek ad çözümleme kapsamı açısından değerlendirilmektedir.

Transact-SQL'de olduğu gibi, grup tabanlı toplamalar da ALL veya DISTINCT değiştiricisini belirtebilir. DISTINCT değiştiricisi belirtilirse, toplama hesaplanmadan önce yinelenen öğeler toplama giriş koleksiyonundan çıkarılır. ALL değiştiricisi belirtilirse (veya değiştirici belirtilmezse), yinelenen eleme yapılmaz.

Ayrıca bakınız