Mysql 清点及;分组函数Laravel

Mysql 清点及;分组函数Laravel,mysql,sql,laravel,count,eloquent,Mysql,Sql,Laravel,Count,Eloquent,我正在使用Laravel为管理员仪表板构建一些分析统计图。我玩得很开心。虽然我在理解如何利用SQL查询和GroupBy函数来实现一些东西时有点困难 最终目标:检索创建的用户和注册的群组用户的计数 到目前为止,我使用的是: DB::table("users") ->select(DB::raw("COUNT(*) as count")) ->orderBy("created_at") ->groupBy(function ($query) {

我正在使用Laravel为管理员仪表板构建一些分析统计图。我玩得很开心。虽然我在理解如何利用SQL查询和GroupBy函数来实现一些东西时有点困难

最终目标:检索创建的用户和注册的群组用户的计数

到目前为止,我使用的是:

DB::table("users")
   ->select(DB::raw("COUNT(*) as count"))
   ->orderBy("created_at")
   ->groupBy(function ($query)
     {
       return \Carbon\Carbon::parse($query->created_at)->format("W");
     })
   ->get();
我在Tinker中遇到了一个错误(这是我目前大部分测试的地方,它是这样的:

PHP warning:  strtolower() expects parameter 1 to be string,  object given in 
/Users/Ian/sites/bangerz-army/vendor/laravel/framework/src/Illuminate/Database/Grammar.php on line 58
我得到了一个类似的查询,可以在PHP中使用,但出于性能方面的原因,我更愿意在SQL中保留尽可能多的数学知识

/Laravel 5.5

在您的小组中尝试使用
DB::raw()

DB::table("users")
   ->select(DB::raw("COUNT(*) as count, WEEK(created_at)"))
   ->orderBy(DB::raw('WEEK(created_at)'))
   ->groupBy(DB::raw('WEEK(created_at)'))
   ->get();

或者使用
orderByRaw
groupByRaw
:)这非常有效,因为我根据Laravel默认值将创建的实例存储为碳实例。我非常感谢你的帮助!