Выборка из таблицы с использованием GROUP BY

27.05.2012

Для себя пишу один проект, пока закрытый, в процессе написания столкнулся с необходимсотью выбрать из базы сгрупированные данные по дню и сложить значение одного поля.

Оказалось что привычным мне классом CDbCriteria() этого не сделать - нужно использовать DAO, и вот что получил в итоге:

$model = Yii::app()->db->createCommand()
    ->select('created_date, SUM(amount) as total')
    ->from('payment p')
    ->group('created_date')
    ->order('created_date DESC')
    ->queryAll();

В переменной $model теперь находится массив с нужными нам данными. Ну и простой пример вывода:

foreach($model as $m) {
    echo $m['created_date'].' - '.$m['total'];
}
blog comments powered by Disqus
Наверх