如何通过Power Automate直接获取Dataverse表中列的最大值?
在Power Automate中直接获取Dataverse列最大值的方法
首先明确:List rows操作的「Filter rows」属性仅用于筛选符合条件的行,不支持max(columnname)这类聚合语法——它只能做行级过滤,无法返回聚合计算结果。
下面是两种更直接的获取最大值的方法:
方法一:用FetchXML聚合查询(在List rows中直接使用)
Dataverse支持FetchXML的聚合功能,你可以构造一个聚合查询,直接在List rows操作中返回最大值:
- 打开Power Automate的「List rows」操作,点击「Show advanced options」展开,找到「Fetch XML Query」属性
- 输入以下FetchXML代码(替换成你的实体名和列名):
<fetch aggregate='true'> <entity name='my_sample_table'> <attribute name='my_sample_column' alias='max_value' aggregate='max' /> </entity> </fetch>
- 执行操作后,用以下表达式提取最大值:
body('List_rows')?['value'][0]?['max_value']
方法二:用Dataverse Web API直接调用聚合
通过「Send an HTTP request to Dataverse」操作,调用Web API的聚合查询,步骤如下:
- 添加「Send an HTTP request to Dataverse」操作
- 配置参数:
- Method: GET
- URI:
my_sample_tables?$select=my_sample_column&$apply=aggregate(my_sample_column with max as max_value)
(注意:Dataverse Web API中实体名需用复数形式,比如my_sample_table对应my_sample_tables)
- 执行后,用以下表达式提取最大值:
body('Send_an_HTTP_request_to_Dataverse')?['value'][0]?['max_value']
这两种方法无需遍历所有行或排序取首行,直接返回聚合后的最大值,数据量大时效率更高。
内容的提问来源于stack exchange,提问作者Sid133
相关产品推荐
相关产品推荐

