2015-10-15 30 views
0

我需要數小時。這是我的laravel雄辯:如何計算laravel查詢項目?

$items = Item::ofType('type')->where('start_at','>=',Carbon::today())->groupBy(\DB::raw('HOUR(start_at)'))->count(); 

這是給我看像2/2/1

的這個sql查詢結果:

SELECT 
    count(*)AS AGGREGATE 
FROM 
    `items` 
WHERE 
    `type` = 'type' 
AND `start_at` >= '2015-10-15 00:00:00' 
GROUP BY 
    HOUR(start_at) 

而且怎麼算2/2/1這並得到結果= 3?

我需要laravel沒有RAW的雄辯。

編輯:

SELECT COUNT(*) FROM (SELECT 
    count(*) AS AGGREGATE 
FROM 
    `items` 
WHERE 
    `type` = 'type' 
AND `start_at` >= '2015-10-15 00:00:00' 
GROUP BY 
    HOUR(start_at)) as count 

如何寫這laravel雄辯?

+0

你的問題似乎是我不清楚。 2/2/1代表什麼?一個約會? – barfoos

+0

它按小時計數組。爲前。 13小時2項,17小時2項,20小時1次。我需要數數多少個小時。這些結果是3 – Haroldas

+0

您編輯的代碼可以通過'$ count = DB :: raw($ q) - > count()'在laravel雄辯中完成,其中'$ q'是您上面的嘗試。如果沒有'DB :: raw()',我認爲你不能這樣做。 – barfoos

回答

0

您可以使用此代碼檢查此鏈接上的laravel文檔。 http://laravel.com/docs/4.2/queries

ORDER BY,GROUP BY和HAVING

$users = DB::table('items') 
        ->orderBy('name', 'desc') 
        ->groupBy('count') 
        ->having('count', '>', 100) 
        ->get();