You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何对mp_id列去重后统计唯一记录数?

解决Laravel中统计去重mp_id的问题

你的原代码Ingresosmp::all()->count('mp_id')会统计所有非空的mp_id,但不会对重复值去重,所以会出现重复统计的问题。可以通过以下两种方式修改:

  • 使用distinct()方法先去重再统计:

    $ingresos = Ingresosmp::distinct()->count('mp_id');
    

    这个写法会生成包含DISTINCT关键字的SQL查询,自动对mp_id去重后再统计数量。

  • 直接在count()中使用原生SQL的DISTINCT:

    use Illuminate\Support\Facades\DB;
    
    $ingresos = Ingresosmp::count(DB::raw('DISTINCT mp_id'));
    

    这种方式需要引入DB门面,通过DB::raw()直接传入原生SQL片段实现去重统计。

两种方式最终效果一致,都能得到不重复的mp_id总数,避免重复统计的问题。

内容的提问来源于stack exchange,提问作者Jeremias Rosas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:06:39