Group By — Klauzula (Visual Basic)Group By Clause (Visual Basic)

Grupuje elementy wyniku zapytania.Groups the elements of a query result. Może również służyć do stosowania funkcji agregujących do każdej grupy.Can also be used to apply aggregate functions to each group. Operacja grupowania jest oparta na jednym lub większej liczbie kluczy.The grouping operation is based on one or more keys.

SkładniaSyntax

Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ]  
  Into aggregateList  

CzęściParts

  • listField1, listField2listField1, listField2

    Opcjonalny.Optional. Co najmniej jedno pole zmiennej zapytania lub zmienne, które jawnie identyfikują pola, które mają być uwzględnione w zgrupowanym wyniku.One or more fields of the query variable or variables that explicitly identify the fields to be included in the grouped result. Jeśli nie określono żadnych pól, do pogrupowanego wyniku są uwzględniane wszystkie pola zmiennej zapytania lub zmiennych.If no fields are specified, all fields of the query variable or variables are included in the grouped result.

  • keyExp1

    Wymagany.Required. Wyrażenie, które identyfikuje klucz używany do określenia grup elementów.An expression that identifies the key to use to determine the groups of elements. Można określić więcej niż jeden klucz do określenia klucza złożonego.You can specify more than one key to specify a composite key.

  • keyExp2

    Opcjonalny.Optional. Jeden lub więcej kluczy, które są połączone z keyExp1 w celu utworzenia klucza złożonego.One or more additional keys that are combined with keyExp1 to create a composite key.

  • aggregateList

    Wymagany.Required. Co najmniej jedno wyrażenie określające sposób agregowania grup.One or more expressions that identify how the groups are aggregated. Aby zidentyfikować nazwę elementu członkowskiego pogrupowanych wyników, użyj słowa kluczowego Group, które może znajdować się w jednej z następujących form:To identify a member name for the grouped results, use the Group keyword, which can be in either of the following forms:

    Into Group  
    

    —lub—-or-

    Into <alias> = Group  
    

    Można również dołączyć funkcje agregujące, które mają zostać zastosowane do grupy.You can also include aggregate functions to apply to the group.

UwagiRemarks

Można użyć klauzuli Group By, aby przerwać wyniki zapytania do grup.You can use the Group By clause to break the results of a query into groups. Grupowanie jest oparte na kluczu lub złożonym kluczu składającym się z wielu kluczy.The grouping is based on a key or a composite key consisting of multiple keys. Elementy, które są skojarzone z pasującymi wartościami klucza, są uwzględniane w tej samej grupie.Elements that are associated with matching key values are included in the same group.

Aby określić nazwę elementu członkowskiego, który jest używany do odwoływania się do grupy, należy użyć parametru aggregateList klauzuli Into i słowa kluczowego Group.You use the aggregateList parameter of the Into clause and the Group keyword to identify the member name that is used to reference the group. Możesz również uwzględnić funkcje agregujące w klauzuli Into, aby obliczyć wartości dla zgrupowanych elementów.You can also include aggregate functions in the Into clause to compute values for the grouped elements. Aby zapoznać się z listą standardowych funkcji agregujących, zobacz klauzula Aggregate.For a list of standard aggregate functions, see Aggregate Clause.

PrzykładExample

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.The following code example groups a list of customers based on their location (country/region) and provides a count of the customers in each group. Wyniki są uporządkowane według nazwy kraju/regionu.The results are ordered by country/region name. Pogrupowane wyniki są uporządkowane według nazwy miasta.The grouped results are ordered by city name.

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 takżeSee also