业务背景 :有一张公众号粉丝关注数总表,按照每天汇总关注总数,解读如下:截止到 2022-01-01 公众号关注总数为: 45087
设计思路:
执行结果:
该实现方式,由于当前所在月还未到最后一天,存在无法获取当前月数据情况。经过考虑,使用 max 取每一个月中最大的一天,最终优化sql如下:
1、这里使用inner join 而非where 子查询,涉及到效率执行问题。
获取上个月最后一天SELECT
date_sub( date_sub( date_format( now(), '%y-%m-%d' ), INTERVAL extract( DAY FROM now()) DAY ), INTERVAL 0 MONTH ) AS date
以下表达式可获取下个月的第一天日期:
DATE_FORMAT(ADDDATE(CURDATE(),INTERVAL '1' MONTH),'%Y-%m-01')
这个日期再减去1天就是月底日期。
下面举例获取今天(2017-01-24)到月底的天数:
select DATEDIFF(
DATE_FORMAT(ADDDATE(CURDATE(),INTERVAL '1' MONTH),'%Y-%m-01'),CURDATE())-1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)