php - Laravel Eloquent,按月/年分组

标签 php sql laravel-5 eloquent

我正在尝试按月和年对我的数据进行分组。

$data ->select(DB::raw('count(id) as `data`'),DB::raw('YEAR(created_at) year, MONTH(created_at) month'))
           ->groupby('year','month')
           ->get();

输出是:

{
"data": 19215,
"year": 2016,
"month": 10
},

如果我只按月分组,我不知道这个月属于哪一年,我的预期输出是:

{
"clicks": 19215,
"month": 11-2016,
},
{
"clicks": 11215,
"month": 12-2016,
},

我想用 sql,而不是 php。

最佳答案

你可以这样尝试:

->select(DB::raw('count(id) as `data`'), DB::raw("DATE_FORMAT(created_at, '%m-%Y') new_date"),  DB::raw('YEAR(created_at) year, MONTH(created_at) month'))
->groupby('year','month')
->get();

关于php - Laravel Eloquent,按月/年分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40529355/

相关文章:

php - Laravel 5 - 为包创建 Artisan 命令

php - PHP 可以在 XML 文件中使用吗?

Php foreach - 除最后一个元素外,用逗号分隔每个循环

sql - 连接声明的列并定义它时,sql如何返回所有行?

mysql - 仅根据非唯一参数更新查询中的单行?

sql - 联合和联合所有

php - 显示存储 laravel 5.3 中的图像

php password_verify 不起作用

php - 在 Laravel 中使用 PHPUnit 测试 HTTP 动词时遇到问题

php - 调用未定义的函数 Illuminate\Encryption\openssl_cipher_iv_length() - laraval5