Um GROUP BY HAVING Statements zu formulieren ist in CakePHP bis Version 1.3 leider noch ein Hack erforderlich (ob HAVING Teil von Version 2 wird weiß ich allerdings nicht). Ein SQL GROUP BY kann einfach durch den Parameter group bei einem beliebigen Query angegeben werden (3.7.3.1 find). HAVING kann dabei wie folgt verwendet werden:
$result = $this->Model->find('all', array(
'group' => array('Model.parameter HAVING COUNT(*) >= 3'),
... // weitere Optionen
};
Dieser Aufruf resultiert in folgendem Query:
SELECT `Model`.* FROM `model` AS `Model` GROUP BY `Model`.`parameter` HAVING COUNT(*) >= 3