Compartilhar via


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:

Into Group

- ou -

Into <alias> = Group

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

Outros recursos

Consultas(Visual Basic)