【问题标题】: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');
  • 是的,我想要的,谢谢

标签: php mysql sql laravel eloquent


【解决方案1】:

有几种方法可以做你想做的事,但最后,你需要添加一个自定义选择来计算分组值。为此,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

【讨论】:

  • 谢谢,效果很好
猜你喜欢
  • 2020-11-20
  • 2013-01-13
  • 2021-11-11
  • 1970-01-01
  • 1970-01-01
  • 2020-03-20
  • 2015-12-13
  • 2018-03-21
  • 2019-06-28
相关资源
最近更新 更多