如何通过分组来计算价值[重复]
Posted
技术标签:
【中文标题】如何通过分组来计算价值[重复]【英文标题】:how to count value with grouping it [duplicate] 【发布时间】:2021-12-19 05:13:04 【问题描述】:我是 Laravel 新手,我需要通过分组来计算值,例如这些值
male male male female female
我需要计算列中有多少个 1,我希望结果是 男:3,女:2
我已经尝试过这种方法,但它没有按预期工作
Patient::select('gendar')->groupBy('gendar')->count()
【问题讨论】:
对不起,你的问题,如何计算有多少关系? 对不起,我已经编辑了问题 Here 的问题和你的几乎一模一样 我不确定 pluck 是否适用于这种情况,但你可以试试Patient::select('gendar', DB::raw('count(*) as total'))->groupBy('gendar')->pluck('total', 'gendar');
是的,我想要的,谢谢
【参考方案1】:
有几种方法可以做你想做的事,但最后,你需要添加一个自定义选择来计算分组值。为此,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
【讨论】:
谢谢,效果很好以上是关于如何通过分组来计算价值[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Javascript:通过将路径作为字符串传递给对象来从对象中获取深层价值[重复]