Cláusula Group By (Visual Basic)
Groups the elements of a query result. Também pode ser usado para aplicar funções agregadas a cada grupo. A operação de agrupamento baseia-se em uma ou mais chaves.
Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ]
Into aggregateList
Parts
Term |
Definition |
listField1, listField2 |
Optional. Um ou mais campos da consulta variável ou variáveis explicitamente identificam os campos a serem incluídas no resultado agrupado. Se nenhum campo forem especificado, todos os campos da consulta variável ou variáveis são incluídos no resultado agrupado. |
keyExp1 |
Required. Uma expressão que identifica a chave para determinar os grupos de elementos. Você pode especificar mais de uma chave para especificar uma chavede composição. |
keyExp2 |
Optional. Uma ou mais teclas adicionais que são combinadas com keyExp1 para criar uma chavede composição. |
aggregateList |
Required. Uma ou mais expressões 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 -
You can also include aggregate functions to apply to the group. |
Comentários
Você pode usar o Group By cláusula para quebrar os resultados de uma consulta em grupos. O agrupamento é baseado em uma chave ou uma composição chave consiste em várias chaves. Os elementos que estão associados com valores de chave correspondentes são incluídos no mesmo grupo.
Você pode usar o aggregateListparâmetro da Into cláusula e o Groupapalavra-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 computar valores de elementos agrupados. Para obter uma lista de funções agregadas padrão, consulte Aggregate Clause (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
Cláusula Select (Visual Basic)
A partir da cláusula (Visual Basic)
Cláusula Order By (Visual Basic)
Aggregate Clause (Visual Basic)
Cláusula Join Group (Visual Basic)
Conceitos
Introdução ao LINQ no Visual Basic