首页 > 其他 > 详细

sum,group 一起使用 TP3.2

时间:2020-07-10 19:05:43      阅读:58      评论:0      收藏:0      [点我收藏+]
$order_item = M(‘order_item‘);
$order_item_list = $order_item->field([‘*‘,‘sum(num) as num‘])->group(‘sku_id‘)->order(‘num desc‘)->limit(10)->select();
// SELECT *,sum(num) as num FROM `tf_order_item` GROUP BY sku_id ORDER BY num desc LIMIT 10

group的同时,求和。求和之后,根据和的大小排序。然后获取最高的10条数据。

也可以加上where筛选条件

$order_item = M(‘order_item‘);
$order_item_list = $order_item->field([‘*‘,‘sum(num) as num‘])->where([‘order_id‘=>[‘in‘,‘1,2‘]])->group(‘sku_id‘)->order(‘num desc‘)->limit(10)->select();
// SELECT *,sum(num) as num FROM `tf_order_item` WHERE `order_id` IN (‘1‘,‘2‘) GROUP BY sku_id ORDER BY num desc LIMIT 10

先where筛选,然后group的同时,求和。求和之后,根据和的大小排序。然后获取最高的10条数据。

SELECT select_list    
FROM table_name   
[ WHERE search_condition ]   
[ GROUP BY group_by_expression ]   
[ HAVING search_condition ]   
[ ORDER BY order_expression [ ASC | DESC ] ] 
[ LIMIT m,n] 
/**
 * mysql 执行顺序
 * SELECT select_list    
 * FROM table_name   
 * [ WHERE search_condition ]   
 * [ GROUP BY group_by_expression ]   
 * [ HAVING search_condition ]   
 * [ ORDER BY order_expression [ ASC | DESC ] ] 
 * [ LIMIT m,n] 
 */
public function index() {
    $order_item = M(‘order_item‘);
    $order_item_list = $order_item->field([‘*‘,‘sum(num) as num‘])->where([‘order_id‘=>[‘in‘,‘1,2‘]])->group(‘sku_id‘)->order(‘num desc‘)->limit(10)->select();
    $this->json->ok($order_item_list);
}

sum,group 一起使用 TP3.2

原文:https://www.cnblogs.com/jiqing9006/p/13280457.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!