MySQL——统计某个表每天的总量和增量问题解决方案
目录
问题描述
问题分析
解决方案
扩展方案
参考文章
问题描述
使用SQL统计某个表每天的总量和增量MySQL数据库
例:一个user表 有user_id自增主键,还有create_time用户创建时间
业务需求:让你统计每天用户的总量和相比前一天增加了多少用户量
问题分析
解决方案
首先将每天的总量查出来 表中的时间一般为date_time类型 所以用个函数
SELECT DATE_FORMAT(create_time,'%Y-%m-%d') dd,COUNT(*) num FROM USER GROUP BY DATE_FORMAT(create_time,'%y-%m-%d')
将上一个SQL作为一个统计表来计算增量 上SQL。
SELECT a.dd,a.num,SUM(lt.num) AS cum FROM
(SELECT DATE_FORMAT(create_time,'%Y-%m-%d') dd,COUNT(*) num FROM USER GROUP BY DATE_FORMAT(create_time,'%y-%m-%d')) a
JOIN
(SELECT DATE_FORMAT(create_time,'%Y-%m-%d') dd,COUNT(*) num FROM USER GROUP BY DATE_FORMAT(create_time,'%y-%m-%d')) lt
ON a.dd >= lt.dd GROUP BY dd
(表一)
(表二)
注:
时间戳格式
FROM_UNIXTIME(create_time,'%Y-%m-%d') as time日期格式
DATE_FORMAT(create_time,'%Y-%m-%d') as time
扩展方案
创建MySQL数据库定时任务,每天数据更新,实现数据持久化,减少不必要的算力。
参考文章
https://blog.csdn.net/a114469/article/details/80704590
https://blog.51cto.com/woniu123/1979970
https://www.cnblogs.com/manger/p/12574834.html
https://www.cnblogs.com/javahr/p/9664203.html
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
