每天访问我的商店 4 次或超过 4 次的 user_id 的每日计数

Posted

技术标签:

【中文标题】每天访问我的商店 4 次或超过 4 次的 user_id 的每日计数【英文标题】:Daily count of user_ids who have visited my store 4 or more than 4 times every day 【发布时间】:2021-12-10 23:28:15 【问题描述】:

我有一个访问过我平台的 user_id 表。我只想计算每个用户和每天访问我的商店 4 次或更多次的用户 ID,持续时间为 10 天。 为了实现这一点,我使用了这个查询:

select date(arrival_timestamp), count(user_id)
from mytable
where date(arrival_timestamp) >= current_date-10
and date(arrival_timestamp) < current_date
group by 1
having count(user_id)>=4
order by 2 desc
limit 10; 

但是此查询实际上是在获取计数值大于 4 的所有用户,而不是每天都包含几乎所有用户,因此我无法仅隔离那些在特定网站上多次访问我的商店的用户日。感谢您提供这方面的任何帮助。

谢谢

【问题讨论】:

请以文本形式提供数据样本(最好作为数据库小提琴中的插入语句)和确切的预期结果。 【参考方案1】:

你可以试试这个

with list as (
select user_id, count(*) as user_count, array_agg(arrival_timestamp) as arrival_timestamp
from mytable
where date(arrival_timestamp) >= current_date-10
and date(arrival_timestamp) < current_date
group by user_id)
select user_id, unnest(arrival_timestamp)
from list
where user_count >= 4

【讨论】:

【参考方案2】:

从过去 10 天内每天访问您的商店 4 次或更多次的日常用户列表(内部查询)中选择出现 10 次的用户,即每天。

select user_id
from
(
 select user_id 
 from the_table 
 where arrival_timestamp::date between current_date - 10 and current_date - 1
 group by user_id, arrival_timestamp::date
 having count(*) >= 4
) t
group by user_id
having count(*) = 10;

【讨论】:

以上是关于每天访问我的商店 4 次或超过 4 次的 user_id 的每日计数的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式字符与grep一致重复n次或更多次

iOS 应用的商店功能标志

操作文件-取出一个60s内log日志中ip访问次数超过100次的ip

日志监控文件中获取ip,每一分钟统计一次,超过200次的计入黑名单

用于计算每周和每周访问一次的用户的 SQL 查询

如何修改我的T-SQL查询,以便输出基于2个不同时期出现两次或更多次的所有记录?