计算laravel中查询在运行时的平均值



我想计算从下面的查询中获得的每日gc_score的平均值:

$query = DB::table('qc_feedbacks')
->selectRaw("
COUNT(cru_agent_detail_id) as numberofEvaluations,
COUNT( CASE WHEN qc_feedbacks.status='Passed' Then 1 ELSE Null End) as passed,
COUNT( CASE WHEN qc_feedbacks.status!='Passed' Then 1 ELSE Null End) as failed,
AVG(score) as gc_score,
cru_agent_details.cru_id as cru_id,
cru_agent_details.name as agentName,
cru_agent_details.team_lead as team_lead,
evaulated_by,
cru_agent_detail_id,
audit_date
")
->join('cru_agent_details', 'cru_agent_details.id', '=', 'qc_feedbacks.cru_agent_detail_id')
->groupBy('audit_date', 'cru_agent_detail_id')
->orderBy('audit_date', 'desc');

从上面的查询得到的每日gc_score的平均值就是我们每月的gc_score。上面的查询应该显示代理的按月gc_score,方法是对上面查询的gc_score取平均值,并将其合并为按月gc_score。下面是如何从每日gc评分中获得每月gc_score的附带示例:

tbody> <<tr>A1
AgentDaily gc_score审计个数通过个数失败个数
A17520155
8520173

从第一个查询开始,您可以将其作为子查询,然后选择它的avg(gc_score)。

否则,您可以按月日期分组:

->groupByRaw('MONTH(audit_date)');

最新更新