id, mn_code, lst, day_avg, min, max, day_online, day_valid, day_exceeding, type insert into dust_statistics_value(mn_code,lst,day_avg,min,max,day_online,day_valid,day_exceeding,type) select a.* from (select mn_code as mn_code, DATE(lst) as lst, ROUND(AVG(dust_value),3) as day_avg, min(dust_value) as min, max(dust_value) as max, ROUND(COUNT(*)/96, 4) as day_online, ROUND(SUM(CASE WHEN dust_value >0 THEN 1 ELSE 0 END)/96, 4) as day_valid, ROUND(SUM(CASE WHEN dust_value >= 1 THEN 1 ELSE 0 END)/96, 4) as day_exceeding, 'day' as type from ja_t_dust_site_data_info where lst between #{beginTime} and #{endTime} GROUP BY mn_code,DATE(lst) ) as a insert into dust_statistics_value(mn_code,lst,day_avg,min,max,day_online,day_valid,day_exceeding,type) select a.* from ( SELECT mn_code AS mn_code, DATE_FORMAT(lst, '%Y-%m-01') AS month, ROUND(AVG(dust_value), 3) AS month_avg, MIN(dust_value) AS min, MAX(dust_value) AS max, ROUND(COUNT(*) / #{count}, 4) AS month_online, ROUND(SUM(CASE WHEN flag = 'N' OR flag = 'A' THEN 1 ELSE 0 END) / #{count}, 4) AS month_valid, ROUND(SUM(CASE WHEN dust_value >= 1 THEN 1 ELSE 0 END) / #{count}, 4) AS month_exceeding, 'month' as type FROM ja_t_dust_site_data_info WHERE lst BETWEEN #{beginTime} and #{endTime} GROUP BY mn_code, DATE_FORMAT(lst, '%Y-%m-01') ) as a