在我的数据库中,我有以下记录:
id code product_amount created_at
1 ORD-1 250 2016-04-04 05:15:05 PM
2 ORD-1 150 2016-04-04 05:15:05 PM
3 ORD-2 450 2016-04-05 11:18:17 PM
4 ORD-3 250 2016-04-06 04:30:25 PM
5 ORD-3 300 2016-04-06 04:30:25 PM
6 ORD-3 750 2016-04-06 04:30:26 PM
7 ORD-4 650 2016-04-06 08:30:26 PM
7 ORD-4 150 2016-04-06 08:30:27 PM现在我想要的是数数每天下的订单,所以输出应该是:
count date
1 2016-04-04 // For ORD-1
1 2016-04-05 // For ORD-2
2 2016-04-06 // For ORD-3 and ORD-4到目前为止我尝试过的代码:
$ordersList = Order::latest();
$ordersListDate = $ordersList->selectRaw('date(created_at) as date')
->groupBy('date')->get()
->lists('date')->toArray();
$ordersListCount = $ordersList->select([
DB::raw('DATE(created_at) AS date'),
DB::raw('COUNT(code) AS count')
])->groupBy('date')->get()->lists('count')->toArray();当我执行dd($ordersListCount)时,上面的控制器给出了
array:2 [▼
0 => "2"
1 => "1"
2 => "5"
]很久以来我一直在挠头,做不到这件事。我知道一定有一些愚蠢的事情,我一定是错过或没有考虑,但我仍然处于学习阶段。
任何帮助都是非常感谢的。谢谢。
发布于 2016-04-27 11:53:31
你想要这样的查询
select count(distinct code) count, date(created_at) as `date`
from orders
group by date但我不能把它写在你的拉拉语上:
刚才回答了。它是一个链接
发布于 2016-04-27 11:42:58
您必须在表中添加一个列日期(YYYY DD格式),记住不要使用日期时间格式。然后,您可以轻松地按日期对其进行分组,并使用以下查询计算订单:
Order::select(array('date', DB::raw('COUNT(code) AS count')))->groupBy('date')->get();发布于 2016-04-27 12:04:55
Order::select(array(DB::raw('DATE(created_at) AS date')), DB::raw('COUNT(code) AS count')))->groupBy('date')->get();https://stackoverflow.com/questions/36888556
复制相似问题