1

アプリでActiveRecordを使用しています。属性ごとに多くのオブジェクトを追加する必要があります。現在、私は次のようにしています:

foreach($objects as $object):
    $result += $object->value;
endforeach;

しかし、それは非常に遅いです。私は同じ結果を得ることができると思いますが、sql sum() の方がより効率的です。

4

2 に答える 2

3

モデルに既に実装されている唯一の集計関数はcount()です。の場合sum()、SQL クエリを使用する必要があります。さまざまなクラス ( ConnectionTableまたはModel) を使用してそれを行うことができます。

(モデルの配列を返す)の使用find_by_sql()は次のとおりです。Model

$result = FooModel::find_by_sql('SELECT SUM(`value`) AS sum FROM `foo_table`')[0]->sum;
于 2012-12-14T11:49:25.437 に答える