Group By 子句 (Visual Basic)
群組查詢結果的項目。 也可以用來將彙總函式 (Aggregate Function) 套用至每個群組。 群組作業是根據一個或多個索引鍵。
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