mysql根据日周月分组计算

mysql根据日周月分组计算

一、mysql生成默认当前日前往前的日期

1、按月份默认生成

(SELECT DATE_FORMAT( @cdate := date_add( @cdate, INTERVAL - 1 MONTH ), '%Y-%m' ) date FROM ( SELECT @cdate := date_add( CURDATE(), INTERVAL 1 MONTH ) FROM `mysql`.`help_topic`  LIMIT 14) a)

生成结果
在这里插入图片描述

2、按天默认生成

(select (curdate() + interval (cast(`mysql`.`help_topic`.`help_topic_id` as signed) - 10) day) AS date from `mysql`.`help_topic` having (date <= date_format(curdate(),'%Y-%m-%d')))

生成结果
在这里插入图片描述

二、mysql按日周月分组统计

1、获取原始数据

SELECT wgwl_date_event_volume,date_processing_capacity,date_unprocessed_volume,zjg_date_event_volume,date_case_volume, overView_time FROM task_status_statistics

获取结果
在这里插入图片描述
2、按日统计默认最近10天的数据

SELECT   SUM(b.zjg_date_event_volume)zjg_date_event_volume,SUM(b.date_case_volume)date_case_volume,temp.date overView_time
FROM
     (select (curdate() + interval (cast(`mysql`.`help_topic`.`help_topic_id` as signed) - 10) day) AS date from `mysql`.`help_topic` having (date <= date_format(curdate(),'%Y-%m-%d'))) temp
LEFT JOIN (select zjg_date_event_volume,date_case_volume, overView_time from task_status_statistics where overview_time >=DATE_SUB(CURDATE(), INTERVAL 10  DAY))
      b on temp.date = DATE_FORMAT(b.overview_time,'%Y-%m-%d')
GROUP BY temp.date ORDER BY temp.date DESC LIMIT 10

统计结果
在这里插入图片描述
3、按周统计默认最近10个周的数据

SELECT
       SUM(b.zjg_date_event_volume) zjg_date_event_volume,SUM(b.date_case_volume) date_case_volume,CONCAT(SUBSTR(DATE_FORMAT(temp.date,'%Y-%u') FROM 1 FOR 4),'年第',SUBSTR(DATE_FORMAT(temp.date,'%Y-%u'),6),'周') weeks,temp.date overView_time
FROM
       (select (curdate() + interval (cast(`mysql`.`help_topic`.`help_topic_id` as signed) - 100) day) AS date from `mysql`.`help_topic` having (date <= date_format(curdate(),'%Y-%m-%d'))) temp
LEFT JOIN (select zjg_date_event_volume,date_case_volume, overView_time from task_status_statistics where overview_time >=DATE_SUB(CURDATE(), INTERVAL 76  DAY))
        b on temp.date = DATE_FORMAT(b.overview_time,'%Y-%m-%d')
GROUP BY date_format(temp.date, '%Y-%u') ORDER BY temp.date DESC LIMIT 10

统计结果
在这里插入图片描述
4、按月统计默认最近10个月的数据

SELECT 
    SUM(b.zjg_date_event_volume) zjg_date_event_volume,SUM(b.date_case_volume) date_case_volume,aa.date overView_time
FROM
    (SELECT DATE_FORMAT( @cdate := date_add( @cdate, INTERVAL - 1 MONTH ), '%Y-%m' ) date FROM ( SELECT @cdate := date_add( CURDATE(), INTERVAL 1 MONTH ) FROM `mysql`.`help_topic`  LIMIT 14) a) aa 
LEFT JOIN (SELECT zjg_date_event_volume,date_case_volume,mon overView_time FROM (SELECT zjg_date_event_volume,date_case_volume,overView_time, DATE_FORMAT(overView_time,'%Y-%m') mon FROM task_status_statistics WHERE overView_time >= DATE_SUB(CURDATE(),INTERVAL 1 YEAR)) a) b on aa.date = b.overView_time
GROUP BY aa.date order by aa.date desc LIMIT 10

统计结果
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值