select hour,sum(a.countSuccess) successCn, (sum(a.countSuccess)+sum(a.callFailed)+sum(a.unListened)+sum(a.emptyNo)) cn,(sum(a.callFailed)+sum(a.unListened)+sum(a.emptyNo)) failCn from ( <foreach collection="list" index="index" item="taskId" separator=" union all " > SELECT HOUR (t.call_time) AS hour, sum(case when status=3 then 1 else 0 end) countSuccess, sum(case when status=4 then 1 else 0 end) callFailed, sum(case when status=5 then 1 else 0 end) unListened, sum(case when status=6 then 1 else 0 end) emptyNo FROM tb_task_run_${taskId} t WHERE DATE_FORMAT(t.call_time, '%Y%m%d') = DATE_FORMAT(now(), '%Y%m%d') and HOUR(t.call_time) BETWEEN 8 and 23 and t.status IN ('3', '4', '5', '6') GROUP BY HOUR (t.call_time) </foreach> ) a GROUP BY a.hour
场景:统计多个任务表中,每天早晨8点到晚上23点各个状态(成功/失败/未接听/空号)的任务记录数有多少
select tb.* from ( <foreach collection="days" index="index" item="day" separator=" union all " > ( select t.id,t.appId,p.app_name appName,t.callid callId,t.caller ,t.nbr,t.start_time startTime,t.end_time endTime,t.result_label resultLabel,t.status, CASE LENGTH(t.transfer_number) WHEN 14 THEN t.transfer_extension ELSE t.transfer_number END as transfer_number_show, t.transfer_extension transferExtension,t.transfer_number transferNumber,t.record_url recordUrl,(UNIX_TIMESTAMP(t.end_time)-UNIX_TIMESTAMP(t.start_time)) timeInt from tb_incoming_call_${day} t,uc_ipcc_cloud_ai.tb_application p where t.appId = p.app_sid and t.start_time is not null <if test="param.caller != null and param.caller!=''"> and t.caller = ${param.caller} </if> <if test="param.ids != null and param.ids != ''"> and t.id in (${param.ids}) </if> <choose> <when test="param.beginDate_1==null or param.beginDate_1==''"> and t.start_time BETWEEN str_to_date(DATE_FORMAT(NOW(),'%Y-%m-%d'),'%Y-%m-%d %H:%i:%s') and DATE_ADD(str_to_date(DATE_FORMAT(NOW(),'%Y-%m-%d'),'%Y-%m-%d %H:%i:%s'),INTERVAL 1 DAY) </when> <otherwise> and t.start_time BETWEEN ${param.beginDate_1} and ${param.endDate_1} </otherwise> </choose> ) </foreach> ) tb order by tb.startTime desc <if test="limit != null and limit != ''"> ${limit} </if>场景:每天一张呼入表,统计一段日期时间段内的呼入详情信息。