首页 文章

尝试根据活动阈值找出每月用户流失的SQL查询

提问于
浏览
2

我有一个表(我们在InfoBright柱状存储上,我使用MySQL Workbench作为我的界面),它实际上跟踪用户和带有日期戳的活动计数 . 这是每日汇总表 . 架构本质上是

userid (int)
activity_count (int)
date (date)

我想要找到的是我的用户每个月都在搅拌,有一个活跃用户的基础被定义为每月活动数量总计> 10的用户

要查找我正在使用的给定月份中有多少用户处于活动状态

select year, month, count(distinct user) as users
from
(
select YEAR(date) as year, MONTH(date) as month, userid as user, sum(activity_count) as activity
from table
group by YEAR(date), MONTH(date), userid
having activity > 10
order by YEAR(date), MONTH(date)
) t1
group by year, month

不是SQL专家,我相信这可以改进,并将欣赏其中的输入 .

我的更大目标是逐月计算出这个数量的用户中有多少是上一个月的新用户或重复用户 . 我不知道如何做到这一点,没有感觉像丑陋的嵌套或加入,我觉得它应该是相当简单的 .

提前致谢 .

1 回答

  • 0

    我认为进一步嵌套是实现这一目标的最佳方式 . 我希望做一些事情,例如选择最小连接年份和月份的用户作为上面的中间层(即外部和内部查询之间),以便您可以 Build 用户变为活动状态的第一个月 . 然后,您可以向外部查询添加where子句以进行过滤,以便仅显示您需要的月份 . 如果您需要语法帮助,请告诉我 .

相关问题