Поделиться через


Предложение Group By (Visual Basic)

Обновлен: Ноябрь 2007

Группирует элементы результата запроса. Может также использоваться для применения статистических функций для каждой группе. Операция группирования основана на одном или нескольких ключах.

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

Компоненты

  • listField1, listField2
    Необязательно. Один или несколько полей переменной или переменных запроса, которые явно идентифицируют поля, подлежащие включению в сгруппированный результат. Если поля не указаны, в сгруппированные результаты включаются все поля из переменной или переменных запроса.

  • keyExp1
    Обязательно. Выражение, которое определяет ключ, используемый для определения групп элементов. Можно указать более одного ключа для указания составного ключа.

  • keyExp2
    Необязательно. Один или несколько дополнительных ключей, которые объединяются с keyExp1 для создания составного ключа.

  • aggregateList
    Обязательно. Одно или несколько выражений, определяющих способ создания групп. Чтобы определить имя члена для сгруппированных результатов, используйте ключевое слово Group, которое может иметь одну из следующих форм:

    Into Group
    

    Можно также включить статистические функции, применимые к группе.

Заметки

Можно использовать предложение Group By для разделения результатов запроса на группы. Группирование основано на простом ключе или составном ключе, состоящем из нескольких простых. Элементы, которые связаны с совпадающими значениями ключа, включаются в ту же группу.

Используйте параметр aggregateList условия Into и ключевое слово Group для идентификации имени члена, которое используется для ссылки на группу. Можно также включить статистические функции в предложение Into для вычисления значений для сгруппированных элементов. Список стандартных статистических функций содержится в разделе Статистическое предложение (Visual Basic).

Пример

Следующий пример кода группирует список заказчиков в зависимости от их местоположения (страны) и предоставляет информацию о количестве заказчиков в каждой группе. Результаты упорядочиваются по названию страны. Сгруппированные результаты упорядочиваются по названию города.

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

См. также

Основные понятия

Знакомство с LINQ в Visual Basic

Ссылки

Предложение Select (Visual Basic)

Условие From (Visual Basic)

Предложение Order By (Visual Basic)

Статистическое предложение (Visual Basic)

Предложение Group Join (Visual Basic)

Другие ресурсы

Запросы (Visual Basic)