gpt4 book ai didi

sql - 随着时间的推移计算不同的用户

转载 作者:行者123 更新时间:2023-12-05 00:49:43 27 4
gpt4 key购买 nike

数据是这样的:

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com