1)有沒有辦法在Yii中使用CActiveRecord獲取整數列的總和?使用CActiveRecord獲得列的總和
否則,我將不得不獲取列數據並在服務器端進行彙總。
2)我還假設通過一個sql查詢獲取總和比獲取數據列並在服務器上使用php進行總結要快。如果性能很重要,那麼mysql服務器是否應該去做這樣的操作,或者讓php服務器來處理這個問題。
請提供建議。
1)有沒有辦法在Yii中使用CActiveRecord獲取整數列的總和?使用CActiveRecord獲得列的總和
否則,我將不得不獲取列數據並在服務器端進行彙總。
2)我還假設通過一個sql查詢獲取總和比獲取數據列並在服務器上使用php進行總結要快。如果性能很重要,那麼mysql服務器是否應該去做這樣的操作,或者讓php服務器來處理這個問題。
請提供建議。
1)我不這麼認爲,除非你想有一個STAT關係,否則用這種方式使用CAvtiveRecord並沒有什麼意義。假設你有一個「問題」模型和一個「答案」模型,答案屬於一個問題。你可以做一個統計關係,在「問題」實現這樣的:
Public function relations() {
return array(
'answerSum'=>array(self::STAT, 'Answer', 'questionId', 'select' => 'SUM(answerSum.someFieldFromAnswerTableToSum)')
);
}
然後您檢索信息:$ question-> answerSum; $ question是上面聲明的關係的一個問題實例。
2)這是數據量的問題。我個人會選擇SQL,因爲它能夠處理大量的數據集,從而可以保存未來。
試試吧
$user = User::model()->findBySql('select sum(`you_column`) as `sum` from user', array());
var_dump($user->sum);
在模式應該是當前場內總和
也許這個問題應該是如何爲列的DB總和查詢,而不是。 – Alocus 2011-04-22 02:47:00
'$ sum = Yii :: app() - > db-> createCommand(「SELECT SUM('theColumnOfData')as'sum'FROM'theTableOfData'」) - > queryScalar();' – Alocus 2011-04-22 02:48:23