Aggregate Tümcesi (Visual Basic)
Bir veya daha fazla toplama işlevleri toplama için geçerlidir.
Aggregate element [As type] In collection _
[, element2 [As type2] In collection2, [...]]
[ clause ]
Into expressionList
Bölümleri
Terim |
Tanım |
element |
Gerekli.Koleksiyon öğeleri boyunca yineleme yapmak için kullanılan değişken. |
type |
İsteğe Bağlı.Tür element.Tür yok belirtilirse, türünü element gelen olayla collection. |
collection |
Gerekli.Karışmayı koleksiyonu gösterir. |
clause |
İsteğe Bağlı.Bir veya daha fazla gibi yan tümcelerini sorgu bir Where toplam yan tümcesi veya yan tümcelerini uygulamak için sorgu sonucu iyileştirmek için yan tümcesi. |
expressionList |
Gerekli.Koleksiyon uygulamak üzere bir toplam işlevi tanımlayan bir veya daha fazla virgülle ayrılmış ifadeler.Sorgu sonucu için üye adı belirtmek için bir toplama işlevi için bir diğer ad uygulayabilirsiniz.Hiç diğer ad sağlanmışsa, toplama işlevinin adı kullanılır.Örnekler için bu konunun ilerisinde toplama işlevleri hakkında bölümüne bakın. |
Notlar
Aggregate Yan tümcesi sorgularınızda toplama işlevleri eklemek için kullanılabilir.Toplama işlevleri, bir değerler kümesi denetler ve hesaplamaları gerçekleştirmek ve tek bir değer döndürür.Sorgu sonucu türünün üyesi kullanılarak hesaplanan değere erişebilirsiniz.The standard aggregate functions that you can use are the All, Any, Average, Count, LongCount, Max, Min, and Sum functions.Bu işlevler SQL aggregates hakkında bilgi sahibi olan geliştiriciler için tanıyorsunuz demektir.Bunlar, bu konuda aşağıdaki bölümde açıklanmıştır.
Bir toplama işlevinin sonucu sorgu sonucu sorgu sonucu türünde bir alan eklenir.Bir diğer ad için toplam değeri tutacaktır sorgu sonuç türü üyesinin adını belirtmek toplama işlevi sonuç sağlayabilir.Hiç diğer ad sağlanmışsa, toplama işlevinin adı kullanılır.
Aggregate Yan tümcesi, sorgunun başlayabilir veya sorguda ek bir yan tümcesi olarak dahil edilebilir.Aggregate Yan tümcesi başlayan bir sorgu, belirtilen toplam işlevinin sonucu olan tek bir değer sonucu Into yan tümcesi.Birden fazla toplama işlevi belirtilmezse Into yan tümcesi, sorgunun döndürdüğü her toplama işlevinde sonucunu başvuru için ayrı bir özelliğe sahip tek bir türü Into yan tümcesi.Aggregate Ek bir yan tümcesi bir sorgu olarak yan tümcesi eklenmiştir, sorgu koleksiyonunda döndürülen türü her toplama işlevinde sonucunu başvuru için ayrı bir özelliği olacak Into yan tümcesi.
Toplama işlevleri
Aşağıdaki liste ile kullanılan standart toplama işlevlerini açıklar Aggregate yan tümcesi.
İşlev |
Description |
All |
Döndürür true koleksiyondaki tüm öğeleri belirli bir koşul; karşılamak, Aksi halde verir false.Aşağıda bir örnek verilmiştir: |
Any |
Döndürür true koleksiyonundaki herhangi bir öğe; belirtilen koşulu karşılayıp karşılamadığını Aksi halde verir false.Aşağıda bir örnek verilmiştir: |
Average |
Tüm öğeleri koleksiyonu veya koleksiyondaki tüm öğeleri için sağlanan computes ifade ortalamasını hesaplar.Aşağıda bir örnek verilmiştir: |
Count |
Koleksiyondaki öğe sayısını sayar.İsteğe bağlı bir sağlayabilir Boolean yalnızca bir koşulu karşılayan koleksiyon öğeleri saymak için ifade.Aşağıda bir örnek verilmiştir: |
Group |
Bir sonucu olarak gruplandırılmış sorgu sonuçlarını gösterir bir Group By veya Group Join yan tümcesi.Group İşlevi, yalnızca geçerli Into yan tümcesi, bir Group By veya Group Join yan tümcesi.Daha fazla bilgi ve örnekler için bkz. Group By Tümcesi (Visual Basic) ve Group Join Tümcesi (Visual Basic) |
LongCount |
Koleksiyondaki öğe sayısını sayar.İsteğe bağlı bir sağlayabilir Boolean yalnızca bir koşulu karşılayan koleksiyon öğeleri saymak için ifade.Sonuç olarak döndüren bir Long.Bir örnek için bkz: Count toplama işlevi. |
Max |
Koleksiyonundan en büyük değeri hesaplar veya koleksiyondaki tüm öğeleri için sağlanan bir ifadeyi hesaplar.Aşağıda bir örnek verilmiştir: |
Min |
Koleksiyonundan minimum değeri hesaplar veya koleksiyondaki tüm öğeleri için sağlanan bir ifadeyi hesaplar.Aşağıda bir örnek verilmiştir: |
Sum |
Koleksiyondaki tüm öğeleri toplamını hesaplar veya koleksiyondaki tüm öğeleri için sağlanan bir ifadeyi hesaplar.Aşağıda bir örnek verilmiştir: |
Örnek
Aşağıdaki kod örneği nasıl kullanılacağını gösteren Aggregate için bir sorgu sonucu toplama işlevleri uygulamak için yan tümcesi.
Public Sub AggregateSample()
Dim customers = GetCustomerList()
Dim customerOrderTotal =
From cust In customers
Aggregate order In cust.Orders
Into Sum(order.Total), MaxOrder = Max(order.Total),
MinOrder = Min(order.Total), Avg = Average(order.Total)
For Each customer In customerOrderTotal
Console.WriteLine(customer.cust.CompanyName & vbCrLf &
vbTab & "Sum = " & customer.Sum & vbCrLf &
vbTab & "Min = " & customer.MinOrder & vbCrLf &
vbTab & "Max = " & customer.MaxOrder & vbCrLf &
vbTab & "Avg = " & customer.Avg.ToString("#.##"))
Next
End Sub
Kullanıcı tanımlı toplama işlevi oluşturma
Uzantı yöntemleri ekleyerek kendi özel toplama işlevlerini bir sorgu ifadesinde içerebilir IEnumerable türü.Özel yönteminizi sonra hesaplama veya sizin toplama işlevi başvurulan sýralanabilir koleksiyon üzerinde işlem gerçekleştirebilirsiniz.Uzantı yöntemleri hakkında daha fazla bilgi için bkz: Uzantı Yöntemleri (Visual Basic).
Örneğin, aşağıdaki kod örneği, sayıları topluluğu medyan değeri hesaplar özel bir toplama işlevi gösterir.Vardır, iki aþýrý yükleme Median uzantısı yöntemi.İlk aşırı kabul, girdi olarak bir koleksiyon türü IEnumerable(Of Double).Median Türü bir sorgu alanı için toplama işlevi adlı Double, bu yöntem çağrılır.İkinci aşırı yüklenmesini Median yöntemi herhangi bir genel tür geçirilen.Genel aşırı yüklenmesini Median yöntemine başvuran ikinci bir parametre alır Func(Of T, Double) (koleksiyonundan) bir türü için bir değer türü karşılık gelen değer olarak proje lambda ifade Double.Sonra aşırı yüklenmesini için medyan değeri hesaplaması temsilci Median yöntemi.Lambda ifadeleri hakkında daha fazla bilgi için bkz: Lambda İfadeleri (Visual Basic).
Imports System.Runtime.CompilerServices
Module UserDefinedAggregates
' Calculate the median value for a collection of type Double.
<Extension()>
Function Median(ByVal values As IEnumerable(Of Double)) As Double
If values.Count = 0 Then
Throw New InvalidOperationException("Cannot compute median for an empty set.")
End If
Dim sortedList = From number In values
Order By number
Dim medianValue As Double
Dim itemIndex = CInt(Int(sortedList.Count / 2))
If sortedList.Count Mod 2 = 0 Then
' Even number of items in list.
medianValue = ((sortedList(itemIndex) + sortedList(itemIndex - 1)) / 2)
Else
' Odd number of items in list.
medianValue = sortedList(itemIndex)
End If
Return medianValue
End Function
' "Cast" the collection of generic items as type Double and call the
' Median() method to calculate the median value.
<Extension()>
Function Median(Of T)(ByVal values As IEnumerable(Of T),
ByVal selector As Func(Of T, Double)) As Double
Return (From element In values Select selector(element)).Median()
End Function
End Module
Aşağıdaki kod örneği örnek arama sorgularını gösterir Median toplama işlevi bir koleksiyon türü üzerinde Integerve bir koleksiyon türü Double.Çağıran sorgu Median toplama işlevi türü tahsilat Double aşırı yüklenmesini çağıran Median yöntemi, girdi olarak bir koleksiyon türü kabul eden Double.Çağıran sorgu Median toplama işlevi türü tahsilat Integer genel aşırı yüklenmesini çağıran Median yöntemi.
Module Module1
Sub Main()
Dim numbers1 = {1, 2, 3, 4, 5}
Dim query1 = Aggregate num In numbers1 Into Median(num)
Console.WriteLine("Median = " & query1)
Dim numbers2 = {1.9, 2, 8, 4, 5.7, 6, 7.2, 0}
Dim query2 = Aggregate num In numbers2 Into Median()
Console.WriteLine("Median = " & query2)
End Sub
End Module
Ayrıca bkz.
Başvuru
Group By Tümcesi (Visual Basic)