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

dd7ab24069748878d639fd7a69107f74.png-wh_(表一)af70e661afde991f19cdc09787650067.png-wh_(表二)

注:

时间戳格式

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章