雄辩的顺序和分组

时间:2018-04-18 17:35:04

标签: eloquent sql-order-by

我一直在寻找2小时的关于如何使用groupBy和orderBY以雄辩的方式构建查询。

这是我的情况:我有这些列的表格订单:

idOfOrder, quantityOfProduct, userWhoBuy, productBuy, statusOfOrder

我想获得最畅销的3款产品。为此,我需要构建一个查询,该查询将所有来自ProductBy的数据,来自数量的主题和来自desc的排序主题进行组合。但这非常困难。

这是我的实际查询:

    $buyObj->select('product',DB::raw('count(*) as total'))
->where('status','=','1')
->groupBy('product')
->orderBy('quantity','desc')
->take(3)
->get();

我收到此错误:

  

SQLSTATE [42000]:语法错误或访问冲突:1055 ORDER BY子句的表达式#1不在GROUP BY子句中,并且包含非聚合列' web_projet_exia.buys.quantity'它在功能上不依赖于GROUP BY子句中的列;这与sql_mode = only_full_group_by不兼容(SQL:选择product,count(*)为buys的总和,其中status = 1组productquantity顺序排列{{1} } desc limit 3)"

你知道如何解决这个问题吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

解决方案只是按总数而非按数量排序。感谢@JonasStaudenmeir