【问题标题】:How to group and count record by date using Laravel?如何使用 Laravel 按日期对记录进行分组和计数?
【发布时间】:2018-12-04 06:25:09
【问题描述】:

我有一个 issues 表,它有一列 created_atstatus,可以是“Open”或“Closed” p>

我需要根据每月的状态统计问题数量。 我想得到这样的东西:

January 2018: {
  open: 300,
  closed: 28,
},
February 2018: {
  open: 250,
  closed: 80
}

我不知道是否有更好的方法,我愿意就如何检索数据提出建议。基本上我正在创建一个管理仪表板并希望在图表中显示数据。

【问题讨论】:

    标签: sql database laravel eloquent


    【解决方案1】:

    假设您使用的是 MySQL:

    $months = Issue::select(
        DB::raw("date_format(created_at, '%M %Y') month"),
        DB::raw("sum(if(status = 'Open', 1, 0)) open"),
        DB::raw("sum(if(status = 'Closed', 1, 0)) closed")
    )->groupBy('month')->get();
    

    您可以使用keyBy()设置密钥:

    $months = $months->keyBy('month');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-26
      • 1970-01-01
      • 1970-01-01
      • 2023-01-10
      • 2023-02-07
      • 2016-03-10
      相关资源
      最近更新 更多