Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Grupuje elementy wyniku zapytania. Można również użyć do stosowania funkcji agregujących do każdej grupy. Operacja grupowania jest oparta na co najmniej jednym kluczu.
Składnia
Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ]
Into aggregateList
generatora
listField1
,listField2
Opcjonalny. Co najmniej jedno pole zmiennej kwerendy lub zmiennych, które jawnie identyfikują pola, które mają zostać uwzględnione w zgrupowanym wyniku. Jeśli nie określono żadnych pól, wszystkie pola zmiennej kwerendy lub zmiennych są uwzględniane w pogrupowanych wynikach.
keyExp1
Wymagany. Wyrażenie identyfikujące klucz używany do określania grup elementów. Możesz określić więcej niż jeden klucz, aby określić klucz złożony.
keyExp2
Opcjonalny. Co najmniej jeden dodatkowy klucz połączony z elementem
keyExp1
w celu utworzenia klucza złożonego.aggregateList
Wymagany. Co najmniej jedno wyrażenie identyfikujące sposób agregowania grup. Aby zidentyfikować nazwę elementu członkowskiego dla pogrupowanych wyników, użyj
Group
słowa kluczowego , które może znajdować się w jednej z następujących formularzy:Into Group
— lub —
Into <alias> = Group
Można również uwzględnić funkcje agregujące, które mają być stosowane do grupy.
Uwagi
Możesz użyć klauzuli Group By
, aby podzielić wyniki zapytania na grupy. Grupowanie jest oparte na kluczu lub kluczu złożonym składającym się z wielu kluczy. Elementy skojarzone z pasującymi wartościami klucza są uwzględniane w tej samej grupie.
Parametr klauzuli Into
i Group
słowo kluczowe służy aggregateList
do identyfikowania nazwy elementu członkowskiego używanego do odwołowania się do grupy. Funkcje agregujące można również uwzględnić w klauzuli Into
, aby obliczyć wartości elementów zgrupowanych. Aby uzyskać listę standardowych funkcji agregujących, zobacz Agregacja klauzuli.
Przykład
Poniższy przykład kodu grupuje listę klientów w oparciu o ich lokalizację (kraj/region) i udostępnia liczbę klientów w każdej grupie. Wyniki są uporządkowane według nazwy kraju/regionu. 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