美文网首页
在 Apex 中使用合并统计查询

在 Apex 中使用合并统计查询

作者: 程程哥 | 来源:发表于2018-04-26 04:21 被阅读0次

    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);
    

    相关文章

      网友评论

          本文标题:在 Apex 中使用合并统计查询

          本文链接:https://www.haomeiwen.com/subject/iikbcftx.html