SOQL 中的合并统计查询

在 SOQL 中,我们可以使用一系列函数来进行合并统计查询。它们的功能和标准 SQL 中的 SUM(),COUNT() 等函数类似。

官方文档

Apex 中使用合并统计查询

在 Apex 中,我们可以通过调用合并查询的 SOQL 语句来得到系列结果。在 Apex 中,AggregateResult 类是专门用来存储这些结果的。

官方文档

要注意的是,每一个 AggregateResult 类的实例都是一个 SObject 类型,并且是只读的。我们在用其中的成员时,需要进行显示转换。

比如:

// 得到所有“机会”记录中“数额”字段的平均值
AggregateResult[] groupedResultsAverage = [SELECT AVG(Amount) avgAmount FROM Opportunity];
Decimal avgAmount = (Decimal) groupedResultsAverage[0].get('avgAmount'); // 得到所有“机会”记录中“数额”字段值大于100的“数额”总值,并根据“客户”字段分组合并查询
AggregateResult[] groupedResults = [SELECT AccountId, SUM(Amount) sumAmount FROM Opportunity WHERE Amount > 100 GROUP BY AccountId]; for (AggregateResult ar : groupedResults) {
System.debug('AccountId is: ' + (Id) ar.get('AccountId'));
System.debug('Sum is: ' + (Decimal) ar.get('sumAmount'));
}

COUNT() 在查询中的唯一性

在使用 COUNT() 函数时,有一点比较特殊:它必须是查询语句中的唯一一个元素。

比如:

// 查询所有“客户”对象记录的总数
Integer countAccount = [SELECT COUNT() FROM Account];
System.debug('Count of Accounts is: ' + countAccount);

最新文章

  1. [数据科学] 从csv, xls文件中提取数据
  2. test [ ] 四类
  3. Action向前台输出
  4. Centos 反向代理创建资料
  5. python面相对象进阶
  6. TestNG学习-001-基础理论知识
  7. 转载解决:错误的语法:”XXXX“必须是批处理中仅有的语句
  8. Filter案例
  9. 线程间同步之 semaphore(信号量)
  10. 在网页中使用javascript提供反馈信息
  11. [置顶] JUnit入门教程(二)
  12. Linux文件系统十问,你知道吗?
  13. Reveal : Xcode辅助界面调试工具
  14. d3.js做的柱状图
  15. 说一说js中的闭包
  16. 插件使用一颜色选择器---cxColor
  17. 数据结构之二分查找——Java语言实现
  18. mybatis 插入数据 在没有commit时 获取主键id
  19. 【BZOJ4830】[HNOI2017]抛硬币(组合计数,拓展卢卡斯定理)
  20. 本地计算机上的SQLServer(MSSQLSERVER)服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止

热门文章

  1. 使用PageHepler分页
  2. redux源码学习笔记 - applyMiddleware
  3. 【Spark调优】Kryo序列化
  4. 在 .NET Core 下的 Swagger UI 自定义操作
  5. Net使用RdKafka引发异常RdKafka.Internal.LibRdKafka 的类型初始值设定项引发异常
  6. 谈谈 Redux 与 Mobx 思想的适用场景
  7. solr(六): 集群
  8. flask中接收post传递数组方法
  9. CAS 无锁式同步机制
  10. More Effective C# 【前戏】