Laravel 仅按日期分组并获取计数

Posted

技术标签:

【中文标题】Laravel 仅按日期分组并获取计数【英文标题】:Laravel group by date to month only and get count 【发布时间】:2016-01-03 21:28:22 【问题描述】:

我有交易表:

我的表架构:

id | item_name | quantity | created_at

我尝试了很多方法,但都不起作用(链接:Laravel Eloquent get results grouped by days。

我想这样显示:

例子:

数量:xxx 月份:七月

数量:xxx 月份:十月

数量:xxx 月份:11 月

如何将 created_at 列转换为仅月份分组并将其显示为 Word 而不是数字,然后获取当月分组数量的计数?

谢谢

【问题讨论】:

***.com/questions/20603075/…这可能对你有帮助 【参考方案1】:
    $data= Transaction::select('id', 'item_name','quantity', 'created_at')
            ->get()
            ->groupBy(function($val) 
            return Carbon::parse($val->created_at)->format('m');
     );

【讨论】:

好的答案解释并提供代码。考虑更新您的答案,以包含有关此代码如何工作以及为什么它是最佳选择的说明。 ErrorException in 32ea051d19391ac12447d17c2f1b05e8 line 97: Trying to get property of non-object (View: /home/mapdipbc/resources/views/a/chart1.blade.php) 如何在我有 2 个 created_at 字段的连接中执行此操作? 此示例获取一个集合(在内存中),然后对集合中的数据进行分组。分组不在数据库查询中完成。它具有跨任何数据库引擎工作的优势,但可能涉及从数据库中移动大量数据以进行后处理(并且可能会耗尽内存)。这个例子看起来不像它处理分组所依据的每个月的 sum() 值,所以我怀疑如果没有一些修复,它实际上不会工作。【参考方案2】:

使用 eloquent date 函数只查找日期,您可以使用月份获取月份或年份获取仅年份。

例如:

public function salesmonthly(Request $request)

    $monthlysales=DB::table('tbl_invs')
     ->select(DB::raw('sum(total) as total'),DB::raw('date(created_at) as dates'))
     ->groupBy('dates')
     ->orderBy('dates','desc')
    ->get();


    // dd($monthlysales);
    return view('reports.monthlysales', compact('monthlysales'));

【讨论】:

【参考方案3】:

如果你不想使用碳

$data= Transaction::get()
    ->groupBy(function($item) 
    return $item->created_at->month;
);

【讨论】:

但它也是碳:/ 'Created_at' 默认情况下被转换为碳对象。【参考方案4】:

如果我们想根据不同年份的每个月获取计数,我们使用以下代码

$usersPerMonth = User::select(
      DB::raw('count(id) as `data`'),
      DB::raw("DATE_FORMAT(created_at, '%Y-%m') as new_date")
    )
    ->groupBy('new_date')->orderBy('new_date')->get();

【讨论】:

以上是关于Laravel 仅按日期分组并获取计数的主要内容,如果未能解决你的问题,请参考以下文章

在 DB2/400 中获取仅按用户分组的最新结果

sql 按计数获取日期的博客存档格式,并按月/年分组

按日期间隔大于 X 的 DATETIME 获取数据、计数和分组

嵌套字典:按日期分组,然后按枚举值分组并汇总计数

按最新日期获取分组后的列

根据给定日期的最大状态计数,并包含分组数据