Laravel雄辩groupBy()AND也返回每个组的计数
我有一个表格,其中包含一列浏览器版本。 我只是想从logging集中知道每种types的浏览器有多less。 所以,我需要结束这样的事情:总logging:10; Internet Explorer 8:2; 铬25:4; Firefox 20:4.(全部加起来10)
这是我的两个便士:
$user_info = Usermeta::groupBy('browser')->get();
当然,这只包含3个浏览器,而不是每个浏览器的数量。 我该怎么做?
这对我有用:
$user_info = DB::table('usermetas') ->select('browser', DB::raw('count(*) as total')) ->groupBy('browser') ->get();
这适用于我(Laravel 5.1):
$user_info = Usermeta::groupBy('browser')->select('browser', DB::raw('count(*) as total'))->get();
谢谢Antonio,
我刚刚在末尾添加了lists
命令,所以它只会返回一个键和数组的数组:
Laravel 4
$user_info = DB::table('usermetas') ->select('browser', DB::raw('count(*) as total')) ->groupBy('browser') ->lists('total','browser');
Laravel 5.1
$user_info = DB::table('usermetas') ->select('browser', DB::raw('count(*) as total')) ->groupBy('browser') ->lists('total','browser')->all();
也是这样工作的,稍微整齐些。 getQuery()
只返回已经包含表引用的底层构build器。
$browser_total_raw = DB::raw('count(*) as total'); $user_info = Usermeta::getQuery() ->select('browser', $browser_total_raw) ->groupBy('browser') ->pluck('total','browser');