当前位置: 代码迷 >> Sql Server >> 求1SQL ,有点绕。
  详细解决方案

求1SQL ,有点绕。

热度:5   发布时间:2016-04-24 21:19:07.0
求一SQL ,有点绕。。


新增就是当天的用户不同于之前的用户数,
活跃就是当天count distinct 的用户数
累积就是当天以及之前所有的count distinct 用户数。


------解决方案--------------------

--> 测试数据:@T
declare @T table([userid] varchar(3),[datetime] datetime)
insert @T
select 'aaa','2013-06-01' union all
select 'aaa','2013-06-01' union all
select 'bbb','2013-06-01' union all
select 'aaa','2013-06-02' union all
select 'ccc','2013-06-02' union all
select 'aaa','2013-06-03' union all
select 'ccc','2013-06-04' union all
select 'ddd','2013-06-04' 

SELECT  Convert(varchar(10),[datetime],120) AS [datetime] ,
        ( SELECT    COUNT(DISTINCT userid)
          FROM      @t a
          WHERE     [datetime] = t.datetime
        ) - ( SELECT    COUNT(DISTINCT userid)
              FROM      @t a
              WHERE     [datetime] < t.datetime
                        AND userid IN ( SELECT  userid
                                        FROM    @T
                                        WHERE   [datetime] = t.[datetime] )
            ) AS 新增用户 ,
  相关解决方案