2012-12-13 3 views
1

내 앱에 ActiveRecord을 사용하고 있습니다. 나는 속성에 의해 많은 객체들을 추가 할 필요가있다. 현재 다음과 같이합니다 :sum() sql with PHP ActiveRecord 사용

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

매우 느립니다. 나는 같은 결과를 얻을 수 있지만 SQL sum()에 의해 더 효율적일 수 있다고 생각합니다. 그래서 ActiveRecord가 sum() 결과를 반환 할 수 있습니까?

답변

2

이미 모델에 구현 된 유일한 집계 함수는 count()입니다. sum()의 경우 SQL 쿼리를 사용해야합니다. 다른 클래스 (Connection, Table 또는 Model)를 사용하여이를 수행 할 수 있습니다.

$result = FooModel::find_by_sql('SELECT SUM(`value`) AS sum FROM `foo_table`')[0]->sum; 
다음은 Modelfind_by_sql()을 사용하고

(모델의 배열을 반환)