如何使用Laravel按日期分组和统计记录?

问题描述 投票:0回答:1

我有一个问题表,它有一列created_at,状态可以是'打开'或'关闭'

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

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

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

sql database laravel eloquent
1个回答
0
投票

假设您使用的是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');
© www.soinside.com 2019 - 2024. All rights reserved.