共用方式為


Group By 子句 (Visual Basic)

將查詢結果的專案分組。 也可以用來將聚合函數套用至每個群組。 群組作業是以一或多個索引鍵為基礎。

語法

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

-或-

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

組件

  • listField1listField2

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

  • alias1alias2

    選擇性。 指派給分組索引鍵的名稱。 如果提供別名,則可以在查詢結果中參照別名,而不是索引鍵運算式。

  • keyExp1

    必須的。 表達式,識別要用來判斷專案群組的索引鍵。 您可以指定多個索引鍵來指定複合索引鍵。

  • keyExp2

    選擇性。 結合 keyExp1 的一或多個其他索引鍵,以建立複合索引鍵。

  • aggregateList

    必須的。 識別群組匯總方式的一或多個表達式。 若要識別群組結果的成員名稱,請使用 Group 關鍵詞,其可以是下列其中一種形式:

    Into Group  
    

    -或-

    Into <alias> = Group  
    

    您也可以包含要套用至群組的聚合函數。

備註

您可以使用 Group By 子句將查詢的結果分成群組。 群組是以由多個索引鍵組成的索引鍵或複合索引鍵為基礎。 與相符索引鍵值相關聯的元素會包含在相同的群組中。

您可以使用 aggregateList 子句的 參數 IntoGroup 關鍵詞來識別用來參考群組的成員名稱。 您也可以在 子句中包含 Into 聚合函數,以計算群組元素的值。 如需標準聚合函數的清單,請參閱 Aggregate 子句

範例

下列程式代碼範例會根據客戶的位置(國家/地區)將客戶清單分組,並提供每個群組中的客戶計數。 結果會依國家/地區名稱排序。 分組的結果會依城市名稱排序。

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

另請參閱