如果我理解你,你想要一个请求
> MIN(Yacht.price)为min_price
> MAX(Yacht.price)为max_price
> MIN(Yacht.long)为min_length
> MAX(Yacht.long)为max_length
对 ?
为此,您不需要任何“Group By”子句. MIN和MAX函数已经是聚合函数.但是没有什么能阻止您在单个请求中使用多个聚合函数.
你试过这么做吗?
$stats = $this->Yacht->find(array(
'conditions' => $conditions,'fields' => array(
'MIN(Yacht.price) as min_price','MAX(Yacht.price) as max_price','MIN(Yacht.long) as min_length','MAX(Yacht.long) as max_length'
)
)
);
顺便说一句,根据documentation,你的原始代码似乎有很多冗余. “find(‘first’,array(…))”本身确保只得到一个结果,因此不需要在请求中指定“’limit’=> 1”,也不需要在那里指定“order”子句反正只会是一个场:)
希望能帮助到你.