Summarize 函数

适用于: Copilot Studio Desktop 流 Power Platform CLI Dataverse 函数

Summarize 通过对一个或多个进行分组来记录

Description

使用该 Summarize 函数对表的记录进行分组,并汇总组中的列。

要作的第一个参数 Summarize 是要作的表。 其余参数可以按任意顺序排列,分为两类:

  • 对列名称进行分组。 使用这些选项指定要分组的列。
  • 摘要公式。 使用这些来汇总 ThisGroup 表中的 列。 ThisGroup 是一个包含原始表的所有列的表,但根据组列,一次只能包含一个组的记录。 每个公式都必须在结果表中使用 As 作为列名命名。

表是 Power Apps 中的一个值,与字符串或数字类似。 可以指定一个表作为函数的自变量,然后函数可返回一个表。 Summarize 不修改表;而是采用表作为参数并返回另一个表。 更多详细信息,请参阅使用表

代理

Summarize 可以根据数据源和汇总公式的复杂性委托。 基本的聚合函数(如 SumAverageMaxMinCountRowsConcat )很有可能被委托。

如果无法完全委派公式,则创作环境会标记无法委派的部分,并显示警告。 如果可能,请考虑更改公式以避免出现无法委派的函数和运算符。

有关更多信息,请参阅 委托概述

语法

SummarizeTableGroupByColumnName1 [, GroupByColumnName2, ... ][, SummarizeColumns As SummarizeNames, ...])

  • Table - 必需。 表待总结。
  • GroupByColumnNames - 至少需要一个。 作为记录分组依据的中的列名称。 这些列将变为生成的表中的列。
  • SummarizeColumns - 可选。 每个组的 ThisGroup 表的汇总公式。
  • SummarizeNames - 每个 SummarizeColumn 都需要。 必须为输出表显式命名每个汇总列。

示例

简单示例

  1. 使用以下示例数据在主机 Power Fx 中创建一个表:
Set( CityPopulations,
   Table(
        { City: "London",    Country: "United Kingdom", Population: 8615000},
        { City: "Berlin",    Country: "Germany",        Population: 3562000},
        { City: "Madrid",    Country: "Spain",          Population: 3165000},
        { City: "Rome",      Country: "Italy",          Population: 2874000},
        { City: "Paris",     Country: "France",         Population: 2273000},
        { City: "Hamburg",   Country: "Germany",        Population: 1760000},
        { City: "Barcelona", Country: "Spain",          Population: 1602000},
        { City: "Munich",    Country: "Germany",        Population: 1494000},
        { City: "Milan",     Country: "Italy",          Population: 1344000}
    )
)
  1. 计算以下公式:
Summarize( CityPopulations, Country,
           Sum( ThisGroup, Population ) As 'Total Population',
           Concat( ThisGroup, City, ", " ) As Cities 
)

结果如下表:

国家/地区 总人口 城市
英国 8615000 伦敦
德国 6816000 柏林,汉堡,慕尼黑
西班牙 4767000 马德里,巴塞罗那
意大利 4218000 罗马,米兰
法国 2273000 巴黎

多个组列

  1. 使用以下示例数据在主机 Power Fx 中创建一个表:
Set( Inventory, 
   Table(
      {Supplier:"Contoso",  Fruit:"Grapes",  Price:220, Purchase:Date(2015,10,1), Tags: ["Red","Seedless"]},
      {Supplier:"Fabrikam", Fruit:"Lemons",  Price:31,  Purchase:Date(2015,10,1), Tags: ["Colombia"]},
      {Supplier:"Contoso",  Fruit:"Lemons",  Price:29,  Purchase:Date(2015,10,2), Tags: ["Peru"]},
      {Supplier:"Contoso",  Fruit:"Grapes",  Price:210, Purchase:Date(2015,10,2), Tags: ["Green","Seedless"]},
      {Supplier:"Fabrikam", Fruit:"Lemons",  Price:30,  Purchase:Date(2015,10,3), Tags: ["Mexico","Seedless"]},
      {Supplier:"Contoso",  Fruit:"Bananas", Price:12,  Purchase:Date(2015,10,3), Tags: ["Mexico"]}
   )
)
  1. 计算以下公式:
Summarize( Inventory, Supplier, Fruit, Average( ThisGroup, Price ) As 'Average Price' )
水果 供应商 餐点平均价格
葡萄 Contoso 215
柠檬 Fabrikam 30.5
柠檬 Contoso 29
香蕉 Contoso 12