当前位置: 首页 > 知识库问答 >
问题:

雄辩的命令人和分组人

步嘉德
2023-03-14

我已经搜索了两个小时,了解如何使用groupBy和orderBY构建一个有说服力的查询。

这是我的情况:我有一个表订单与这些列:

idOfOrder, quantityOfProduct, userWhoBuy, productBuy, statusOfOrder

我想买3种最畅销的产品。为此,我需要构建一个查询,它将ProductBy中的所有数据分组,将quantity中的主题求和,并将主题按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:选择产品,从购买,其中状态=1组按产品顺序按数量desc限制3)中计数(*)为总数

你知道怎么修吗?

提前谢谢!

共有1个答案

翟博雅
2023-03-14

解决办法是按总量而不是按数量订购。感谢@JonasStaudenmeir

 类似资料:
  • 我对雄辩的质询有意见。我正在使用渴望加载(一对多多态关系)来排序“historyable”。日期见下文。 我试着得到这样的结果 是否有可能运行嵌套懒惰渴望加载Laravel? 产品型号 历史模型 产品控制器 我有这样的数据库

  • 我有一个小问题,当我试图通过使用雄辩的模型在列中创建_来排序记录时。订单是按日期而不是按时间进行的。例如,如果我有3条记录的值为created_at: > 2017-07-04 07:16:33 2017-07-04 05:35:01 2017-07-04 05:27:48 使用orderby('created_at','desc')或'asc'时,我有相同的输出。但是,如果我有,订购就可以了 2

  • 嘿,伙计们,我是拉威尔的新朋友。我有这张桌子 我如何能够获取每个科目的is_correct列计数? 谢谢伙计们!

  • 我读过laravel 4文档中关于ququent的内容,并且对push()部分很感兴趣。它说, 有时,您可能不仅希望保存模型,还希望保存其所有关系。为此,您可以使用推送方法: 保存模型和关系

  • 如何将以下查询转换为Laravel4雄辩ORM?

  • 问题内容: 我想返回所有类别的所有项目。 此查询我现在返回的类别为1或2或3的项目。我需要返回的类别为1和2以及3的项目。 我怎样才能做到这一点? 问题答案: 试试这个: 使用查询将仅返回具有所有列出类别的项目。