一、查询每天的数据,没有数据的那天,补全0:
SELECTdateTime,MAX( success ) AS success,MAX( fail ) AS fail
FROM(SELECT@cdate := DATE_ADD( @cdate, INTERVAL - 1 DAY ) dateTime,0 AS success,0 AS fail FROM( SELECT @cdate := DATE_ADD( #{date1}, INTERVAL + 1 DAY ) FROM table ) temp WHERE@cdate > #{date2} UNION ALLSELECTDATE_FORMAT( t1.create_time, '%Y-%m-%d' ) AS dateTime,sum( CASE WHEN t1.status = 1 THEN 1 ELSE 0 END ) AS success,sum( CASE WHEN t1.status != 1 THEN 1 ELSE 0 END ) AS fail FROMtable t1LEFT JOIN table2 t2 ON t1.id = t2.t1_id ate_time >= #{date3}ate_time <= #{date4}GROUP BYDATE_FORMAT( t1.create_time, '%Y-%m-%d' ) ) tempAllTable
GROUP BYdateTime
ORDER BYdateTime DESC
查询结果展示:
二、查询每月的数据,没有数据的月份,补全0:
SELECTdateTime,MAX( success ) AS success,MAX( fail ) AS fail
FROM(SELECTDATE_FORMAT( @cdate := DATE_ADD( @cdate, INTERVAL - 1 MONTH ), '%Y-%m' ) dateTime,0 AS success,0 AS fail FROM( SELECT @cdate := DATE_ADD( #{date1}, INTERVAL + 1 MONTH ) FROM table LIMIT #{limit}) temp UNION ALLSELECTDATE_FORMAT( t1.time_create, '%Y-%m' ) AS dateTime,sum( CASE WHEN status = 1 THEN 1 ELSE 0 END ) AS success,sum( CASE WHEN status != 1 THEN 1 ELSE 0 END ) AS fail FROMtable t1LEFT JOIN table t2 mr ON t1.id = t2.t1_id WHEREt1.time_create >= #{date2} AND t1.time_create <= #{date3} GROUP BYDATE_FORMAT( t1.time_create, '%Y-%m' ) ) tempAllTable
GROUP BYdateTime
ORDER BYdateTime DESC
查询结果展示:
本文发布于:2024-01-29 19:33:36,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170652801817769.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |