Group By 절(Visual Basic)
쿼리 결과의 요소를 그룹화합니다. 또한 집계 함수를 각 그룹에 적용하는 데 사용할 수 있습니다. 그룹화 작업은 하나 이상의 키를 기준으로 합니다.
Group [ listField1 [, listField2 [...] ] By keyExp1 [, keyExp2 [...] ]
Into aggregateList
요소
용어 |
정의 |
listField1, listField2 |
선택적 요소. 그룹화된 결과에 포함될 필드를 명시적으로 식별하는 하나 이상의 쿼리 변수 필드 또는 변수로 구성됩니다. 필드를 지정하지 않은 경우에는 쿼리 변수의 모든 필드 또는 변수가 그룹화된 결과에 포함됩니다. |
keyExp1 |
필수 요소. 요소 그룹을 결정하는 데 사용할 키를 식별하는 식입니다. 둘 이상의 키를 지정하여 복합 키를 지정할 수 있습니다. |
keyExp2 |
선택적 요소. 복합 키를 만들기 위해 keyExp1과 함께 사용하는 하나 이상의 추가 키입니다. |
aggregateList |
필수 요소. 그룹 집계 방식을 식별하는 하나 이상의 식입니다. 그룹화된 결과의 멤버 이름을 식별하려면 다음 형식인 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