mysql按周统计数据简述

概述

业务中经常会遇到按年月日统计的场景;
但有时会有按周统计的情况;
我一般是用3种方法去解决:

  1. 利用mysqlweekday函数。计算出当前日期是一周中的第几天,然后当前日期 - 这个数值,就可以得到当前周的周一的日期;然后直接group by即可
  2. 利用week函数,可以直接拿到当前日期是一年中的第几周;然后直接group by即可;(注意week函数需要设置mode,不同的mode返回的值不同)
  3. 利用YEARWEEK函数,返回的是年+周;然后group即可。(同样也需要填充mode,默认mode0

weekday函数简述

weekday返回返回是0-6对应周一至周日;那么当前日期-这个值就是当前日期对应这一周的周一的年月日;

#当前日期 - 返回值
create_time - weekday(create_time) as monday

week函数简述

一般我用的是5,因为mode=5,不用分大小周,返回都是从周一开始算;

mode=1会有大小周,即跨年的那一周,最新那一年如果在跨年那周占据的天数少,那么返回0,占据天数多则返回1)
mysql按周统计数据简述_第1张图片

参考博文
https://blog.csdn.net/dmw412724/article/details/95318091

你可能感兴趣的:(Mysql,mysql)