Compartilhar via


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:

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

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

Outros recursos

Consultas (Visual Basic)