2016-11-10 33 views
2

我試圖按月份和年份對數據進行分組。Laravel雄辯,按月份/年組

$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中。

回答

8

你可以爲嘗試:

->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(); 
+1

犯規的工作,我已經更新了答案SQL錯誤 – TheShun

+1

。請再試一次。 –

+0

QLSTATE [42000]:語法錯誤或訪問衝突:1055 SELECT列表的表達式#2不在GROUP BY子句中並且包含非聚集列 – TheShun