作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
数据是这样的:
Date | userid
-------------------
01/01/2016 | jacby
01/01/2016 | jacby
01/01/2016 | donta
01/01/2016 | stapf
02/02/2016 | kamed
02/02/2016 | jacby
02/02/2016 | kamed
02/02/2016 | carpi
03/03/2016 | slwig
03/03/2016 | kamed
我希望能够使用 SQL、TSQL 或 SSRS 表达式生成一个输出,如下所示:
Date | Unique Users
-----------------------------
01/01/2016 | 3
02/02/2016 | 5
03/03/2016 | 6
这本质上是唯一用户的运行总数,引用截至该日期的唯一用户。 IE。从开始日期开始,我想知道自开始日期以来的唯一用户总数,正在进行中。
我可以计算特定日期的唯一用户总数,但这不考虑该用户是否在前一天登录。我确实想知道使用日期作为计数器的 while 循环,但实际上,我不知道从哪里开始。
我的 google-fu 离我很远,我想不出正确的术语来描述我在寻找什么。
编辑 - 抱歉 - 每个用户每天可能有多个条目。我已经修改了上面的源示例表。
最佳答案
您希望获得某人注册的第一次次,然后获取此值的累积总和:
select
t.date,
sum(
sum(
case
when seqnum = 1 then 1
else 0
end
)
) over (
order by
date
) as numUniques
from
(
select
t.*,
row_number() over (
partition by user
order by
date
) as seqnum
from
t
) t
group by
t.date
order by
t.date
您可以在子查询中放置 where
子句,以将其限制为一组特定的日期。
关于sql - 随着时间的推移计算不同的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37679478/
我是一名优秀的程序员,十分优秀!