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
相关产品推荐
相关产品推荐

