mysql 实现连续的日期统计

内容纲要

应用场景

产品:帮我查一下最近一个月,每天的注册人数;没有注册的日期也要有,人数为0就好了。
开发:如果不要没有注册人数的日期,是否可以?
产品:不行,一定要
开发:画圈圈
以上场景,在当今这个以数据为依据的大数据时代,很常见。开发拿到这种需求时,多数时候都是下面的步骤:
1.从数据库统计出每天的注册人数
2.再把没有数据的日期,用程序来补齐

以上处理方式,有问题吗?没毛病,但是有可以偷懒的方法^-^!

实现原理

  1. 生成需要的日期临时表数据,得到 table1

    以上是获取一个月的日期,开始时间:2021-01-01,结束日期:2021-01-31,天数控制 @count

  2. 统计查询业务数据,得到表 table2

    统计每天的注册用户数

  3. table1 left join table2(用日期关联)

总结

优点

可以快速的完成产品需求,同时减少自己的工作量,提升工作效率。

缺点

相对高的理解成本,要写更多的sql。

题外话

经常会发现,同样的事,不同的人,不同的处理方式,得到的结果却不一样。有的人会很快速的完成,有的人却完成的很艰难,不是别人比你聪明,只是他更善于发现事务的痛点,并有成本更低的方法来解决痛点。

君子生非异也,善假于物也!

发表评论

邮箱地址不会被公开。 必填项已用*标注

3 × 3 =