1) Я так не думаю, и не имеет смысла использовать CAvtiveRecord таким образом, если только вы не хотите иметь отношение STAT. Допустим, у вас есть модель «Вопрос» и модель «Ответ», и ответы относятся к вопросу. Вы можете составить статистическое отношение и реализовать его в «Вопросе» следующим образом:
Public function relations() {
return array(
'answerSum'=>array(self::STAT, 'Answer', 'questionId', 'select' => 'SUM(answerSum.someFieldFromAnswerTableToSum)')
);
}
Затем вы получаете информацию: $ question-> answerSum; где $ question является экземпляром Question с отношениями, объявленными как выше.
2) Это вопрос количества данных. Я бы лично выбрал SQL, потому что он способен обрабатывать большее количество наборов данных и, следовательно, экономит будущее.