如何通过分组来计算价值
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 提供了 selectRaw
或 DB::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
我是 Laravel 的新手,我需要通过分组来计算值,例如我有这些值
male male male female female
我需要计算列中有多少个 1,我希望结果是 男:3,female:2
我试过这个方法,但效果不理想
Patient::select('gendar')->groupBy('gendar')->count()
有多种方法可以满足您的需求,但最后,您需要添加一个自定义 select 来计算分组值。为此 Laravel 提供了 selectRaw
或 DB::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