当前位置: 代码迷 >> Sql Server >> 查询方法,新增用户数
  详细解决方案

查询方法,新增用户数

热度:215   发布时间:2016-04-24 23:15:02.0
求一个查询方法,新增用户数
直观一些     表结构主要部分大概这样
userid   price      date
1         100       2013-1-1
2         50        2013-1-1
1         100       2013-1-2
2         100       2013-1-2
1         100       2013-1-2
3         100       2013-1-3
2         200       2013-1-3
2         200       2013-1-3
4         100       2013-1-3

写过一个方法,但是太乱太复杂了
我现在根据每天统计出
日期       充值用户数   总价   新增用户数   ...现在主要新增用户数这不知道简单些方法如何统计出
2013-1-1   2            150      ?(2)
2013-1-2   2            300      ?(0)
2013-1-3   3            600      ?(2)

------解决方案--------------------
动态行列转化,搜搜看看
------解决方案--------------------
新增用户数:
select count(*) from tb where userid not in(select distinct userid from tb where date<'2013-1-3')

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

SELECT [date],COUNT(DISTINCT(userid)),SUM(price) FROM tableName GROUP BY [date]

新增用户不知道怎么搞。。。
------解决方案--------------------
select convert(varchar(10),date,120)日期,count(distinct userid) 充值用户数,sum(price)总价,
(select count(distinct tb2.userid) from tb tb2 where convert(varchar(10),tb1.date,120)=convert(varchar(10),tb2.date,120) and not exists(select 1 from tb tb3 where tb2.userid=tb3.userid and tb3.date<tb2.date)
)新增用户数 from tb tb1 group by convert(varchar(10),date,120)


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


create table [table]
(userid int,
price int,
date datetime)

insert into [table]
select 1,100,'2013-1-1' union all
select 2     ,    50        ,'2013-1-1' union all
select 1     ,    100       ,'2013-1-2' union all
select 2     ,    100       ,'2013-1-2' union all