gpt4 book ai didi

sql - 如何查找 1 天、2 天、3 天的活跃用户数.....postgreSQL

转载 作者:行者123 更新时间:2023-11-29 12:23:31 25 4
gpt4 key购买 nike

一周内 # 天活跃的分布:我试图找出在 3/1-3/7 的特定一周内有多少成员活跃了 1 天、2 天、3 天……7 天。

有什么方法可以在分区依据之上使用聚合函数吗?如果不是,可以使用什么来实现这一点?

select distinct memberID,count(date) over(partition by memberID) as no_of_days_active
from visitor
where date between '"2019-01-01 00:00:00"' and '"2019-01-07 00:00:00"'
order by no_of_days_active

结果应该是这样的

#Days Active    Count
1 20
2 32
3 678
4 34
5 3
6 678
7 2345

最佳答案

我认为您需要两个级别的聚合来计算一周中的天数:

select num_days_active, count(*) as num_members
from (select memberID, count(distinct date::date) as num_days_active
from visitor
where date >= '2019-01-01'::date and
date < '2019-01-08'::date
group by memberID
) v
group by num_days_active
order by num_days_active;

请注意,我更改了日期比较。如果您有时间组件,则 between 不起作用。而且,因为您将时间包含在常量中,所以我为 count(distinct) 添加了到日期的显式转换。如果 date 确实是一个没有时间成分的日期,那可能就没有必要了。

关于sql - 如何查找 1 天、2 天、3 天的活跃用户数.....postgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55798507/

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