最后24小时的订单数量

时间:2016-06-08 09:10:38

标签: php database laravel-5.1

我有一个订单表,其中包含created_at,我想知道如何处理过去24小时的订单并按小时分组并显示该小时的总订单。

$hourlyOrders = Order::where('created_at', '>', Carbon::now()->subDays(1))->count();

我想我需要以某种方式分组小时?我只需要计算每小时的订单。

编辑:

因此,如果我现在检查将会有订单总数从上午9点到10点,早上8点到9点,早上7点到早上8点回到24次迭代,但这取决于查询运行的时间...如果你看到我的意思。

2 个答案:

答案 0 :(得分:1)

试试这个:

$hourlyOrders = Order::where('created_at', '>', Carbon::now()->subDays(1))
              ->groupBy(\DB::raw('HOUR(created_at)'))
              ->count();

编辑:

$orders = DB::table('Order') // write your table name
         ->selectRaw('count(order_id) as total_orders')) // use your field for count
         ->where('created_at', '>', Carbon::now()->subDays(1))
         ->groupBy(\DB::raw('HOUR(created_at)'))
         ->get();

答案 1 :(得分:0)

按小时按结果分组的纯SQL将是:

SELECT count(*)
FROM Order
GROUP BY hour( created_at );