Compartilhar via


Cláusula Group By (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:

Into Group

- ou -

Into <alias> = Group

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

Cláusula Select (Visual Basic)

Cláusula From (Visual Basic)

Cláusula Order By (Visual Basic)

Cláusula Aggregate (Visual Basic)

Cláusula Join Group (Visual Basic)

Conceitos

Introdução a LINQ no Visual Basic

Outros recursos

Consultas (Visual Basic)