Есть ли способ (помимо полностью настраиваемого SQL) найти среднее значение столбца таблицы из записей, соответствующих определенным условиям в CakePHP 2.9?
Например, я могу легко найти список полей, вызвав модель поля:
$fields = $this->Field->find('all', array(
'conditions' => array(
'User.username' => 'John Doe',
'Report.created' => '2018-01-01'
)
);
Тем не менее, я действительно хочу получить среднее Field.value
для всех соответствующих записей.
Что я обычно могу сделать, это выполнить необработанный SQL-запрос;
$average = $this->Field->query('
select avg(f.value) as average from fields f
left join users u on (f.user_id = u.id)
left join reports r on (f.report_id = r.id)
where u.username = "John Doe" and r.created = "2018-01-01"
');
Однако я не обязательно знаю, каковы поля условия, и я хотел бы использовать мощь CakePHP ORM для построения запроса.
Есть ли способ рассчитать это среднее из Model::find
?