如何通过分组来计算价值

how to count value with grouping it

我是 Laravel 的新手,我需要通过分组来计算值,例如我有这些值

male male male female female

我需要计算列中有多少个 1,我希望结果是 男:3,female:2

我试过这个方法,但效果不理想

Patient::select('gendar')->groupBy('gendar')->count()

有多种方法可以满足您的需求,但最后,您需要添加一个自定义 select 来计算分组值。为此 Laravel 提供了 selectRawDB::raw('...') 助手。

您的一些选项例如:

$patients = Patient::select('gendar', DB::raw('count(gendar) as count'))
    ->groupBy('gendar')
    ->get()

$patients = Patient::select('gendar')
    ->addSelect(DB::raw('count(gendar) as count'))
    ->groupBy('gendar')
    ->get()

甚至

$patients = Patient::selectRaw('gendar, count(gendar) as count')
    ->groupBy('gendar')
    ->get()

您可以在官方文档中阅读更多关于 Laravel 的原始方法:https://laravel.com/docs/8.x/queries#raw-methods