课程章节介绍
同学们,今天我们来聊聊SOQL里的聚合函数。想象一下,你有一堆数据,比如所有商机的金额,你想知道总和、最大值,而不是列出每一条记录,那聚合函数就是你的好帮手。
常见的聚合函数有SUM求和、MAX取最大值、MIN最小值、AVG平均值,还有COUNT计数。你可以在查询里直接使用它们,例如`SELECT SUM(Amount) FROM Opportunity`,就得到所有商机金额的总和了。
你可以选择加上GROUP BY分组,比如按客户分组计算每个客户的总金额,但也可以不加,不加就是对全部数据做聚合。重点是,只要查询里用了聚合函数,返回的结果就不是普通的sObject列表了,而是一个AggregateResult对象数组。这个AggregateResult是只读的,专门用来承载聚合查询的结果。
一个小细节:如果你没有给聚合字段起别名,比如直接写`SUM(Amount)`,那系统会自动给它一个隐含名称,格式是“expr0”,如果有多个未命名的聚合字段,就依次expr1、expr2。所以在代码里读取结果时,可以用`get('expr0')`来获取,但建议还是用别名,像`SUM(Amount) totalAmount`,这样更清晰。
另外关于限制跟踪(比如Apex的Governor Limits),要注意:COUNT()函数在没有GROUP BY时,算作1个查询行消耗;其他聚合函数(SUM、AVG等)每个输入行都计为1个查询行消耗。如果有GROUP BY,那么每个分组计为一行消耗。这点在写大量数据聚合逻辑时要注意限额。
总结一下:聚合函数帮你快速汇总数据,返回特殊的AggregateResult,注意别名和限额影响。好,今天就讲到这里,大家试试看用聚合函数计算一下你们的数据吧。
关键词
Apex
Salesforce
Developer Guide