SOQLで集計関数を使う
SOQL内で集計関数を使うことがありその際に型が違うことでハマったので備忘録がてら残します。
sample.apex
List<contact> contactList = new List<contact>();
contactList =
[
SELECT
Count(Id)
FROM
Contact
];
system.debug(contactList);
これで実行してもエラーで返されます。
AggregateResult
ってなんやねん!ってなりました。
説明読んでもあまりわからないので、簡単に言うと、集計関数を使う際には
AggregateResultレコードで返すよってことです。
集計関数 | 説明 |
---|---|
AVG() | 数値項目の平均値を返します。 |
COUNT() | クエリ条件に一致する行数を返します。 |
COUNT_DISTINCT() | クエリ条件に一致する、null 以外の個別の項目値の数を返します。次に例を示します。 |
MIN() | 項目の最小値を返します。 |
MAX() | 項目の最大値を返します。 |
SUM() | 数値項目の合計を返します。 |
型には気をつけましょう!というお話。