Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 按月分组,并在Laravel Elount上排序日期_Php_Mysql_Laravel_Eloquent - Fatal编程技术网

Php 按月分组,并在Laravel Elount上排序日期

Php 按月分组,并在Laravel Elount上排序日期,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我有以下疑问 $months=\App\DATA::select( DB::raw('sum(order_value)作为'sums'), DB::raw(“日期格式(创建于,'%M%Y')作为月份”) ) ->其中(“创建于”、“>”、\Carbon\Carbon::now()->子月(6)) ->groupBy(“月”) ->get(); 这就是过去6个月每个月的数据总和。问题是它是按字母顺序输出日期的 August 2019 July 2019 June 2019 May 2019 No

我有以下疑问

$months=\App\DATA::select(
DB::raw('sum(order_value)作为'sums'),
DB::raw(“日期格式(创建于,'%M%Y')作为月份”)
)
->其中(“创建于”、“>”、\Carbon\Carbon::now()->子月(6))
->groupBy(“月”)
->get();
这就是过去6个月每个月的数据总和。问题是它是按字母顺序输出日期的

August 2019
July 2019
June 2019
May 2019
November 2019
October 2019
September 2019
我不能用订购者订购它:

->orderBy('created_at')
由于以下问题

SQLSTATE[42000]:语法错误或访问冲突:ORDER BY子句的1055表达式#1不在GROUP BY子句中,并且包含未聚合的列


如何按日期排序?

只需按
创建的
排序数据即可:

$months=\App\DATA::select(
DB::raw('ANY_VALUE(created_at)作为created_at')
DB::raw('sum(order_value)作为'sums'),
DB::raw(“日期格式(创建于,'%M%Y')作为月份”)
)
->其中(“创建于”、“>”、\Carbon\Carbon::now()->子月(6))
->orderBy('created_at')
->groupBy(“月”)
->get();

尝试使用
max
函数和
->orderBy('createdAt','desc')


如果正在对其进行分组,则不能以这种方式对其进行排序
SQLSTATE[42000]:语法错误或访问冲突:ORDER BY子句的1055表达式#1不在GROUP BY子句中,并且包含未聚合列
请尝试在select中添加在
处创建的
。我已经编辑了我的回答这里潜在的报告问题是您正在选择OP初始查询没有的新列。谢谢!只有当
orderBy
更改为
createdAt
而不是
created\u时,这才有效。
$months = \App\DATA::select(
       DB::raw('sum(order_value) as `sums`'),
       DB::raw("DATE_FORMAT(created_at,'%M %Y') as months"),
       DB::raw('max(created_at) as createdAt')
)
      ->where("created_at", ">", \Carbon\Carbon::now()->subMonths(6))
      ->orderBy('createdAt', 'desc')
      ->groupBy('months')
      ->get();