【问题标题】:How can i get unique user from order on particular day如何在特定日期从订单中获取唯一用户
【发布时间】:2019-04-03 08:30:55
【问题描述】:

我想要从我的网站购买用户数量的图表。我怎样才能做到这一点?

$ordersArr = Order::where('vendor_id',$id)
        ->whereBetween('created_at',[$carbonStart,$carbonEnd])
        ->get();

我的表如下 顺序

id user_id venodr_id  created_at
==================================
 1     1           1      2019-03-30 07:15:03
 2     1           2      2019-03-30 07:20:03
 3     1           1      2019-03-29 07:20:03
 4     1           2      2019-03-29 07:20:03
 5     2           1      2019-03-30 07:15:03
 6     2           2      2019-03-30 07:20:03
 7     2           1      2019-03-29 07:20:03
 8     2           2      2019-03-29 07:20:03
 9     2           2      2019-03-29 07:20:03

我想要的结果是

user_id  count  date
  1        2    2019-03-30
  1        2    2019-03-29 
  2        2    2019-03-30
  2        3    2019-03-29

【问题讨论】:

  • 您需要按dateuser_id 分组,并为额外的列添加COUNT()
  • 你能解释一下吗?

标签: laravel eloquent laravel-query-builder


【解决方案1】:
$data = DB::table('order')
        ->select(DB::raw('user_id,count(*) as vendor_id,created_at as date'))
        ->whereBetween('created_at',[$carbonStart,$carbonEnd])
        ->groupBy('user_id')->get(); 

【讨论】:

  • 可以通过eloquent模型查询得到吗??
  • 将 DB::table('order') 替换为 Order::select ?
  • 通常我在模型中使用雄辩,在控制器中使用数据库查询。这样对我来说看起来更容易。
猜你喜欢
  • 2021-12-12
  • 1970-01-01
  • 2016-05-10
  • 1970-01-01
  • 1970-01-01
  • 2016-10-23
  • 2015-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多