Agrupar por cláusula (Visual Basic)
Agrupa os elementos de um resultado de consulta.Também pode ser usado para aplicar funções agregadas a cada grupo.A operação de agrupamento se baseia em uma ou mais chaves.
Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ]
Into aggregateList
Partes
Termo |
Definição |
listField1, listField2 |
Opcional.Um ou mais campos da variável de consulta ou variáveis explicitamente identificam os campos a serem incluídas no resultado agrupado.Se nenhum campo forem especificado, todos os campos da variável de consulta ou variáveis são incluídos no resultado agrupado. |
keyExp1 |
Obrigatório.Uma expressão que identifica a chave a ser usada para determinar os grupos de elementos.Você pode especificar mais de uma chave para especificar uma chave composta. |
keyExp2 |
Opcional.Uma ou mais teclas adicionais que são combinadas com keyExp1 para criar uma chave composta. |
aggregateList |
Obrigatório.Uma ou mais expressões que identificam como os grupos são agregados.Para identificar um nome de membro para os resultados agrupados, use o Group palavra-chave, que pode ser uma das seguintes formas:
- ou -
Você também pode incluir funções agregadas para aplicar ao grupo. |
Comentários
Você pode usar o Group By cláusula para dividir os resultados de uma consulta em grupos.O agrupamento é baseado em uma chave ou uma chave composta que consiste em várias chaves.Os elementos que estão associados com valores de chave de correspondência são incluídos no mesmo grupo.
Você pode usar o aggregateList parâmetro da Into cláusula e a Group palavra-chave para identificar o nome do membro que é usado para referenciar o grupo.Você também pode incluir funções agregadas a Into cláusula para calcular valores para os elementos agrupados.Para obter uma lista de funções agregadas padrão, consulte Cláusula Aggregate (Visual Basic).
Exemplo
O exemplo de código a seguir agrupa uma lista de clientes baseados em sua localização (país) e fornece uma contagem dos clientes em cada grupo.Os resultados são ordenados pelo nome do país.Os resultados agrupados são ordenados pelo nome da cidade.
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
Consulte também
Referência
Selecione a cláusula (Visual Basic)
(Visual Basic) da cláusula FROM
Ordem por cláusula (Visual Basic)
Cláusula Aggregate (Visual Basic)
Cláusula de associação de grupo (Visual Basic)
Conceitos
Introdução ao LINQ em Visual Basic