【发布时间】:2018-03-17 16:20:25
【问题描述】:
我正在使用 Laravel 为管理员仪表板构建一些分析统计图。我玩得很开心。虽然我在理解如何利用 SQL 查询和 GroupBy 函数来实现一些东西时有点困难。
最终目标:检索创建的用户的计数和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
【问题讨论】:
标签: mysql sql laravel count eloquent