Compartir vía


Cláusula Group By (Visual Basic)

Agrupa los elementos de un resultado de consulta. También se puede usar para aplicar funciones de agregado a cada grupo. La operación de agrupación se basa en una o varias claves.

Sintaxis

Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ]  
  Into aggregateList  

-o-

Group [ listField1 [, listField2 [...] ] By alias1 = keyExp1 [, alias2 = keyExp2 [...] ]  
  Into aggregateList  

Partes

  • listField1, listField2

    Opcional. Uno o varios campos de la variable de consulta o variables que identifican explícitamente los campos que se incluirán en el resultado agrupado. Si no se especifica ningún campo, todos los campos de la variable de consulta o variables se incluyen en el resultado agrupado.

  • alias1, alias2

    Opcional. Nombres asignados a las claves de agrupación. Si se proporcionan alias, se puede hacer referencia a ellos en el resultado de la consulta en lugar de en las expresiones clave.

  • keyExp1

    Obligatorio. Expresión que identifica la clave que se va a usar para determinar los grupos de elementos. Puede especificar más de una clave para especificar una clave compuesta.

  • keyExp2

    Opcional. Una o varias claves adicionales que se combinan con keyExp1 para crear una clave compuesta.

  • aggregateList

    Obligatorio. Una o varias expresiones que identifican cómo se agregan los grupos. Para identificar un nombre de miembro para los resultados agrupados, use la Group palabra clave , que puede estar en cualquiera de las formas siguientes:

    Into Group  
    

    -o-

    Into <alias> = Group  
    

    También puede incluir funciones de agregado que se aplicarán al grupo.

Observaciones

Puede usar la Group By cláusula para dividir los resultados de una consulta en grupos. La agrupación se basa en una clave o en una clave compuesta formada por varias claves. Los elementos asociados a los valores de clave coincidentes se incluyen en el mismo grupo.

Use el aggregateList parámetro de la Into cláusula y la Group palabra clave para identificar el nombre de miembro que se usa para hacer referencia al grupo. También puede incluir funciones de agregado en la Into cláusula para calcular los valores de los elementos agrupados. Para obtener una lista de las funciones de agregado estándar, consulte Cláusula aggregate.

Ejemplo

En el ejemplo de código siguiente se agrupa una lista de clientes en función de su ubicación (país o región) y se proporciona un recuento de los clientes de cada grupo. Los resultados se ordenan por nombre de país o región. Los resultados agrupados se ordenan por nombre de ciudad.

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 también