この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

AggregateResult

クエリコールに MAX() などの集計関数が含まれる場合にのみクエリ結果を返す参照のみの SObject。

query() または queryMore() コールに集計関数が含まれる場合にのみ結果が AggregateResult で返されます。このコールに集計関数が含まれない場合、結果は QueryResult SObject で返されます。

たとえば、次のクエリは records 項目で Contact レコードの配列を返します。

1SELECT Id, LastName
2FROM Contact
3WHERE FirstName = 'Bob'

SOQL クエリに集計関数が含まれる場合、レコード項目は AggregateResult レコードの配列を返します。

項目

各 AggregateResult オブジェクトには、SELECT リストのアイテムごとに別個の項目が含まれます。Enterprise WSDL の場合、各アイテムの結果を取得するには、WSC クライアントフレームワークを使用するときに AggregateResult オブジェクトに対して getField() をコールします。Partner WSDL の場合、各アイテムの結果を取得するには、オブジェクトに対して getField() をコールします。

サンプルコード — Java

1public void queryAggregateResult() {
2  try {
3    String groupByQuery = "SELECT Account.Name n, " +
4        "MAX(Amount) max, MIN(Amount) min " +
5        "FROM Opportunity GROUP BY Account.Name";
6    QueryResult qr = connection.query(groupByQuery);
7    if (qr.getSize() > 0) {
8      System.out.println("Query returned " + 
9          qr.getRecords().length +  " results."
10      );
11      for (SObject sObj : qr.getRecords()) {
12        AggregateResult result = (AggregateResult) sObj;
13        System.out.println("aggResult.Account.Name: " + 
14            result.getField("n")
15        );
16        System.out.println("aggResult.max: " + 
17            result.getField("max")
18        );
19        System.out.println("aggResult.min: " + 
20            result.getField("min")
21        );
22        System.out.println();
23      }
24    } else {
25      System.out.println("No results found.");
26    }
27    System.out.println("\nQuery successfully executed.");
28  } catch (ConnectionException ce) {
29    ce.printStackTrace();
30  }
31}

サンプルコード — C#

1private void testAggregateResult()
2{
3   try
4   {
5      QueryResult qr = null;
6
7      binding.QueryOptionsValue = new QueryOptions();
8
9      String soqlStr = "SELECT Name, " +
10                       "MAX(Amount), " +
11                       "MIN(Amount) " +
12                       "FROM Opportunity " +
13                       "GROUP BY Name";
14
15      qr = binding.query(soqlStr);
16
17      if (qr.size > 0)
18      {
19
20         for (int i = 0; i < qr.records.Length; i++)
21         {
22
23                sforce.AggregateResult ar = (AggregateResult)qr.records[i];
24
25                foreach (XmlElement e in ar.Any)
26                    Console.WriteLine(
27                        "{0} - {1}", 
28                        e.LocalName, 
29                        e.InnerText
30                    );
31
32         }
33      }
34      else
35      {
36         Console.WriteLine("No records found");
37      }
38      Console.WriteLine("Query successfully executed.");
39   }
40   catch (Exception ex)
41   {
42      Console.WriteLine(
43          "\nFailed to execute query successfully." +
44          "error message was: \n" + 
45          ex.Message
46      );
47
48   }
49}