我想计算从下面的查询中获得的每日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的附带示例:
Agent | Daily gc_score | 审计个数 | 通过个数 | 失败个数 | A1 | 75 | 20 | 15 | 5 | A1
---|---|---|---|---|
85 | 20 | 17 | 3 |
从第一个查询开始,您可以将其作为子查询,然后选择它的avg(gc_score)。
否则,您可以按月日期分组:
->groupByRaw('MONTH(audit_date)');