首页 >数据库 >mysql教程 >如何按天对 Laravel Eloquent 结果进行分组?

如何按天对 Laravel Eloquent 结果进行分组?

Patricia Arquette
Patricia Arquette原创
2024-11-03 15:09:03650浏览

How Can I Group Laravel Eloquent Results by Days?

按天对 Laravel Eloquent 结果进行分组

当使用包含跟踪用户活动的记录的表时,按天分组对于获取对流量模式的洞察。然而,每条记录存在不同时间会妨碍准确分组。

解决方案 1:DB::Raw Query

要实现基于天的分组,请利用MySQL 中的 DATE() 函数。该函数从时间戳中去除时间成分,得到纯日期。

DB::table('page_views')
    ->select(DB::raw('DATE(created_at) as date'), DB::raw('count(*) as views'))
    ->groupBy('date')
    ->get();

解决方案 2:使用 Carbon 进行 Eloquent 查询

要保留在 Laravel Eloquent 框架内,利用 Carbon 进行日期操作。第一个 where 子句过滤上个月内创建的记录。按日期分组并按降序排序可确保按时间顺序呈现。

<code class="php">$visitorTraffic = PageView::where('created_at', '>=', \Carbon\Carbon::now()->subMonth())
                            ->groupBy('date')
                            ->orderBy('date', 'DESC')
                            ->get(array(
                                DB::raw('Date(created_at) as date'),
                                DB::raw('COUNT(*) as "views"')
                            ));</code>

以上是如何按天对 Laravel Eloquent 结果进行分组?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn