다음을 통해 공유


Group By 절(Visual Basic)

쿼리 결과의 요소를 그룹화합니다. 또한 집계 함수를 각 그룹에 적용하는 데 사용할 수 있습니다. 그룹화 작업은 하나 이상의 키를 기준으로 합니다.

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

요소

용어

정의

listField1, listField2

선택적 요소. 그룹화된 결과에 포함될 필드를 명시적으로 식별하는 하나 이상의 쿼리 변수 필드 또는 변수로 구성됩니다. 필드를 지정하지 않은 경우에는 쿼리 변수의 모든 필드 또는 변수가 그룹화된 결과에 포함됩니다.

keyExp1

필수 요소. 요소 그룹을 결정하는 데 사용할 키를 식별하는 식입니다. 둘 이상의 키를 지정하여 복합 키를 지정할 수 있습니다.

keyExp2

선택적 요소. 복합 키를 만들기 위해 keyExp1과 함께 사용하는 하나 이상의 추가 키입니다.

aggregateList

필수 요소. 그룹 집계 방식을 식별하는 하나 이상의 식입니다. 그룹화된 결과의 멤버 이름을 식별하려면 다음 형식인 Group 키워드를 사용합니다.

Into Group

또는

Into <alias> = Group

또한 집계 함수를 포함하여 그룹에 적용할 수 있습니다.

설명

Group By 절을 사용하여 쿼리 결과를 그룹별로 분리할 수 있습니다. 그룹화는 하나의 키 또는 여러 키로 구성된 복합 키를 기준으로 합니다. 일치하는 키 값과 관련된 요소는 동일한 그룹에 포함됩니다.

Into 절의 aggregateList 매개 변수와 Group 키워드를 사용하여 그룹을 참조하는 데 사용하는 멤버 이름을 식별합니다. 또한 집계 함수를 Into 절에 포함하여 그룹화된 요소의 값을 계산할 수 있습니다. 표준 집계 함수의 목록은 Aggregate 절(Visual Basic)을 참조하십시오.

예제

다음 코드 예제에서는 고객의 위치(국가)를 기준으로 고객 목록을 그룹화하고 각 그룹의 고객의 수를 제공합니다. 결과는 국가 이름별로 정렬되며 그룹화된 결과는 도시 이름별로 정렬됩니다.

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

참고 항목

참조

Select 절(Visual Basic)

From 절(Visual Basic)

Order By 절(Visual Basic)

Aggregate 절(Visual Basic)

Group Join 절(Visual Basic)

개념

Visual Basic의 LINQ 소개

기타 리소스

쿼리(Visual Basic)