Group By 子句 (Visual Basic)

群組查詢結果的項目。 也可用來將彙總函式套用至每個群組。 群組作業是根據一個或多個索引鍵。

語法

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

組件

  • listField1listField2

    選擇性。 一或多個查詢變數的欄位,明確識別要包含在群組結果中的欄位。 如果未指定任何欄位,群組結果中會包含查詢變數的所有欄位。

  • 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

另請參閱