有一张 用户表,表里有一个 创建时间 的字段,每新增一个用户,都会根据当前时间给这个用户加上 创建时间。
现在有这么一个需求,给定一个 yyyy-MM
,查出在这个月份里,每一天的用户新增数,以及在这一天的用户总数。
关于 每一天的用户新增数,这个不难得出:
但如果我想再多加一列,这一列的数据是,这一天之前的用户总数(包含当天),sql 该如何写呢?求大神赐教。
基本的原理方法是差不多的,你可以参考一下
还是有区别的,你的 Qry
是一个字段,是一个确切的数值,而我首先是需要根据时间分组,得出每一天的数据,然后需要使用 count(1)
得出这一天的新增用户数
@Yoooshiki:
原表TT,我查询了结果存入的FF表,扩展一个flag列,保存一个固定值,一样的效果,这个也可以用单sql处理,我只是为了测试用了一个中间表
我觉得你这个“这一天的用户总数”字段如果经常用的话,新建一个表记录比较简单(但是,时间长了数据库的压力是很大的,维护量较大)
你是要在你这个表上新增加一列或者新建一个表的话,实现是比较简单的,你应该会,上边也提到了。
如果不创建的话,可以用嵌套查询,
给你举个简单的例子
select
from
(select
from Table) as A
注意在子查询的后面一定要指定子查询的结果,命名为A
把你的条件和表换上应该就可以了。
反正两种方法各有好处