统计活跃用户

客户提出要登录系统的活跃用户,定义如下:
an active definition can be one that at least download 5 times in a week.

构思如下:
1.首先要循环每个7天的时间段
2.找出时间段内登陆超过5次的
3.循环插入临时表
4.在临时表里group by 统计用户

--创建临时表开始
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Temp_ActivtUser]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Temp_ActivtUser]
GO

CREATE TABLE [dbo].[Temp_ActivtUser] (
 [userid] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [logon] [int] NULL ,
 [beginDate] [datetime] NULL
) ON [PRIMARY]
--创建临时表结束

DECLARE @today datetime
DECLARE @i datetime
SET @today = getdate()
--开始日期
SET @i='2009-08-01'

WHILE @i<=@today  
BEGIN 
 
 print @i
 DECLARE UserCursor CURSOR DYNAMIC
   FOR
        --一周内所有登陆等于或超过五次的用户
        select userid,count(*) as aa from TB_LOGINRECORD 
        where logonDate between @i and DATEADD(day,6,@i)
        Group by userid having count(*)>4
  
       OPEN UserCursor
       DECLARE @userid nvarchar(20)
       DECLARE @userNum int
 
 FETCH NEXT FROM UserCursor INTO @userid,@userNum
 WHILE @@FETCH_STATUS = 0
 BEGIN
  --循环体
  insert into Temp_ActivtUser values(@userid,@userNum,@i)
  FETCH NEXT FROM UserCursor INTO @userid,@userNum
 END 
 --关闭游标
 CLOSE UserCursor 
 --释放游标
 DEALLOCATE UserCursor 

 SET @i = DATEADD(day,1,@i)
 
 
END

 

转载于:https://www.cnblogs.com/haoch_00/archive/2009/09/07/1561996.html

### 如何统计用户活跃度 #### 使用Redis进行高效活跃用户统计 对于大规模用户基数的应用场景,传统的关系型数据库如MySQL在处理高并发读写和复杂聚合查询时性能表现不佳。针对这一挑战,采用NoSQL解决方案之一——Redis能够显著优化活跃用户统计数据的实时性和准确性。 通过利用Redis的数据结构特性,特别是其高效的集合操作命令`setbit`,可以在极大程度上减少存储空间占用并加速访问速度。每当有新用户登录系统时,在对应的日期标记该用户的唯一标识符;当需要获取特定周期内的DAU(日活)、WAU(周活)或MAU(月活)数值时,则只需简单地执行按位逻辑运算即可得出结果[^4]。 ```python import redis r = redis.Redis(host='localhost', port=6379, db=0) def record_user_activity(user_id, date_str): key_name = f"user_active:{date_str}" r.setbit(key_name, user_id, 1) def get_daily_active_users(date_str): key_name = f"user_active:{date_str}" return sum([int(x) for x in list(r.getrange(key_name, 0, -1))]) # 记录某天某个用户的活动情况 record_user_activity(12345, '2023-10-01') # 获取指定日期的日活跃用户数 print(get_daily_active_users('2023-10-01')) ``` 此方法不仅解决了海量数据下的性能瓶颈问题,还提供了灵活的时间维度支持,使得开发者可以根据实际需求轻松调整统计粒度。 #### 定义不同时间范围内的活跃率指标 为了全面评估产品的健康状况和发展趋势,除了关注每日新增注册人数外,还需要深入理解现有用户的参与频率及其变化规律。因此定义了多个层次上的活跃度衡量标准: - **日活跃用户数 (Daily Active Users, DAU)**:指每天至少有一次有效行为记录的独立访客总数; - **周活跃用户数 (Weekly Active Users, WAU)**:过去七日内有过互动经历的人群规模; - **月活跃用户数 (Monthly Active Users, MAU)**:近三十天内保持一定频次使用的个体数量[^3]。 这些KPIs有助于管理层及时发现潜在风险点,并据此制定针对性策略促进长期稳定增长。 #### 数据可视化工具助力决策过程 最后值得一提的是,借助先进的数据分析平台绘制直观易懂的信息图表同样重要。例如桑基图(Sankey Diagram),它能清晰展示各个渠道之间的流量转移路径以及转化效率,帮助产品经理快速定位影响因素并验证假设效果[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值