cakephp - 如何在cakephp中使用聚合函数SUM?

标签 cakephp cakephp-2.0

我有这个查询,我想按数量总和订购。我必须在分页中使用这个结果,请帮助我..

SELECT (SUM( OrderItem.quantity )) AS qty, `OrderItem`.`item_name` , 
`OrderItem`.`size` FROM `order_items` AS `OrderItem` WHERE 1 =1 
GROUP BY `OrderItem`.`item_name` , `OrderItem`.`size` 
ORDER BY (SUM( OrderItem.quantity )) DESC

我试过下面的代码,但它不起作用
$this->paginate = array('fields'=>array('(SUM(OrderItem.quantity)) as qty',
                                        'OrderItem.item_name',
                                    'OrderItem.size'),
                        'group'=>array('OrderItem.item_name','OrderItem.size'),
                        'order' => array('(SUM(OrderItem.quantity))'=>'DESC'));

最佳答案

您可以使用“自定义查询分页¶”按照以下链接:

http://book.cakephp.org/2.0/en/core-libraries/components/pagination.html#custom-query-pagination

在您的模型中使用它:

 public function paginate($conditions, $fields, $order, $limit, $page = 1, $recursive = null, $extra = array()) {
        $page--;
        $offset=$limit*$page;
        $result= $this->find('all',array('fields'=>array('(SUM(OrderItem.quantity)) as qty',
            'OrderItem.item_name',
            'OrderItem.size'),'group'=>array('OrderItem.item_name','OrderItem.size'),'order' => array('qty'=>'DESC'),'conditions'=>$conditions,'limit'=>$limit, 'offset'=>$offset));
       return $result;

    }

关于cakephp - 如何在cakephp中使用聚合函数SUM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16271326/

相关文章:

unit-testing - 在 CakePHP Controller 测试中访问模型

mysql - cakephp 在条件中找到多组 OR

CakePHP如何显示相关信息

CakePHP 主题插件 View

php - 如何在cakephp的组件中运行查询?

php - CakePHP:添加 DISTINCT 以查找导致关联被省略

php - CakePHP 在 View 中设置变量以用于布局

php - Cakephp 传递的参数

javascript - 想要从 cakephp 中部门下拉列表的 onchange 中选择用户?

mysql - 使用 Security::Cipher 将加密数据存储在数据库中