156

他の列の中で、ブラウザーのバージョンの列を含むテーブルがあります。そして、レコードセットから、各タイプのブラウザーがいくつあるかを知りたいだけです。したがって、最終的には次のようにする必要があります。合計レコード: 10; Internet Explorer 8: 2; クローム 25: 4; Firefox 20: 4. (すべて合計すると 10 になります)

これが私の2ペンスです:

$user_info = Usermeta::groupBy('browser')->get();

もちろん、これには 3 つのブラウザーが含まれているだけで、それぞれの数は含まれていません。これどうやってするの?

4

13 に答える 13

304

これは私のために働いています:

$user_info = DB::table('usermetas')
                 ->select('browser', DB::raw('count(*) as total'))
                 ->groupBy('browser')
                 ->get();
于 2013-08-30T13:11:37.157 に答える
43

これは私にとってはうまくいきます(Laravel 5.1):

$user_info = Usermeta::groupBy('browser')->select('browser', DB::raw('count(*) as total'))->get();
于 2016-07-20T10:00:11.740 に答える
37

ありがとうアントニオ、

最後にコマンドを追加したlistsので、キーとカウントを含む 1 つの配列のみが返されます。

ララベル4

$user_info = DB::table('usermetas')
    ->select('browser', DB::raw('count(*) as total'))
    ->groupBy('browser')
    ->lists('total','browser');

ララベル5.1

$user_info = DB::table('usermetas')
    ->select('browser', DB::raw('count(*) as total'))
    ->groupBy('browser')
    ->lists('total','browser')->all();

ララベル5.2+

$user_info = DB::table('usermetas')
    ->select('browser', DB::raw('count(*) as total'))
    ->groupBy('browser')
    ->pluck('total','browser');
于 2015-08-11T15:34:48.693 に答える
9

そのようにも機能し、もう少し整頓されています。 getQuery()テーブル参照が既に含まれている基礎となるビルダーを返すだけです。

$browser_total_raw = DB::raw('count(*) as total');
$user_info = Usermeta::getQuery()
    ->select('browser', $browser_total_raw)
    ->groupBy('browser')
    ->pluck('total','browser');
于 2015-11-12T16:08:58.247 に答える