Group By — Klauzula (Visual Basic)
Grupuje elementy w wyniku kwerendy.Można również stosować funkcje agregujące dla każdej grupy.Operacja grupowania opiera się na jeden lub więcej kluczy.
Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ]
Into aggregateList
Części
Termin |
Definicja |
listField1, listField2 |
Opcjonalne.Jedno lub więcej pól zmienna kwerendy lub zmiennych, które wyraźnie wskazać pola, które mają zostać uwzględnione w wyniku zgrupowane.Jeśli nie określono żadnych pól, wszystkich pól zmienna kwerendy lub zmienne znajdują się w wyniku zgrupowane. |
keyExp1 |
Wymagane.Wyrażenie, które identyfikuje klucz do użycia w celu określenia grup elementów.Można określić więcej niż jednego klucza, aby określić klucz złożony. |
keyExp2 |
Opcjonalne.Jeden lub więcej dodatkowych kluczy, które są połączone z keyExp1 utworzyć klucz złożony. |
aggregateList |
Wymagane.Jednego lub wielu wyrażeń, które identyfikują, jak są agregowane grup.Aby zidentyfikować nazwa członka pogrupowane wyniki, należy użyć Group słowa kluczowego, które mogą znajdować się w jednej z następujących form:
- lub -
Może również zawierać funkcje agregujące, aby zastosować do grupy. |
Uwagi
Można użyć Group By klauzuli podziału wyników kwerendy na grupy.Grupowanie jest oparty na klucz lub złożony klucz, składający się z wielu kluczy.W tej samej grupie znajdują się elementy, które są skojarzone z dopasowywania wartości klucza.
Za pomocą aggregateList parametr Into klauzuli i Group słowo kluczowe, aby zidentyfikować nazwa członka, który jest używany do grupy.Może również zawierać funkcje agregujące w Into klauzuli do obliczenia wartości dla zgrupowanych elementów.Aby uzyskać listę standardowych funkcji agregujących, zobacz Aggregate — Klauzula (Visual Basic).
Przykład
Poniższy przykład kodu grupy listy klientów na podstawie ich lokalizacji (kraju) i zapewnia liczba klientów w każdej grupie.Wyniki są uporządkowane według nazwy kraju.Pogrupowane wyniki są uporządkowane według nazwy miasta.
Public Sub GroupBySample()
Dim customers = GetCustomerList()
Dim customersByCountry = From cust In customers
Order By cust.City
Group By CountryName = cust.Country
Into RegionalCustomers = Group, Count()
Order By CountryName
For Each country In customersByCountry
Console.WriteLine(country.CountryName &
" (" & country.Count & ")" & vbCrLf)
For Each customer In country.RegionalCustomers
Console.WriteLine(vbTab & customer.CompanyName &
" (" & customer.City & ")")
Next
Next
End Sub
Zobacz też
Informacje
Select — Klauzula (Visual Basic)
From — Klauzula (Visual Basic)
Order By — Klauzula (Visual Basic)
Aggregate — Klauzula (Visual Basic)
Group Join — Klauzula (Visual Basic)
Koncepcje
Wprowadzenie do LINQ w Visual Basic