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
子句來將查詢的結果分成群組。 群組是根據索引鍵或多個索引鍵所組成的複合索引鍵。 與相符索引鍵值相關聯的項目會包含在相同的群組。
您使用 aggregateList
子句的 Into
參數和 Group
關鍵字來識別用來參考群組的成員名稱。 您也可以在 Into
子句中包含彙總函式來計算群組項目的值。 如需標準彙總函式的清單,請參閱 Aggregate Clause。
範例
下列程式碼範例根據客戶的位置 (國家/地區) 進行客戶清單的分組,並提供每個群組中的客戶計數。 結果會依國家/地區名稱排序。 群組結果會依城市名稱排序。
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