Php Laravel将聚合值与另一个表中的值进行比较

Php Laravel将聚合值与另一个表中的值进行比较,php,sql,laravel,postgresql,Php,Sql,Laravel,Postgresql,当我想将count aggregate与另一个表中的预期数字进行比较时,会出现这种情况。该数字与计数匹配或高于计数值。我想做的是有两个查询,一个是whereRaw('count=v.expected'),另一个是whereRaw('countfordynamic columns try usehaving())语句。@Daniel我试过了,但想不出在这种情况下如何使用它。Count在子查询中,所以据我所知,如果我在have中使用,我可能会得到不同的Count,因为它是外部查询。你能粘贴由lara

当我想将count aggregate与另一个表中的预期数字进行比较时,会出现这种情况。该数字与计数匹配或高于计数值。我想做的是有两个查询,一个是
whereRaw('count=v.expected')
,另一个是
whereRaw('countfordynamic columns try use
having())
语句。@Daniel我试过了,但想不出在这种情况下如何使用它。Count在子查询中,所以据我所知,如果我在have中使用,我可能会得到不同的Count,因为它是外部查询。你能粘贴由laravel生成的整个查询吗?
$query = DB::table('sv')
        ->select(DB::raw('DISTINCT ON (sv.person_id) person_id'))
        ->addSelect(['count' => function ($query) {
            $query->select(DB::raw('count(person_id) as cdr'))
                ->from('sv as sv2')
                ->whereRaw('sv.person_id=sv2.person_id')
                ->groupBy('person_id')
                ->limit(1);
        }])

        ->join('v', 'sv.v_id', '=','v.id')
        ->join('op', 'sv.person_id', '=','op.id')
        ->whereRaw('count=v.expected') // does not work here
        ->where('sv.o_id', $this->o_id);

         return $query->get()->count();