Предложение 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)
Предложение Order By (Visual Basic)
Статистическое предложение (Visual Basic)
Предложение Group Join (Visual Basic)