2

我有一个表(我们在 InfoBright 列式存储上,我使用 MySQL Workbench 作为我的界面),它基本上跟踪用户和带有日期戳的活动计数。这是一张每日汇总表。Schema本质上是

用户 ID(整数)
活动计数(整数)
日期(日期)

我要查找的是每个月有多少用户在流失,活动用户的基础定义为每月活动计数总计 > 10 的用户

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

选择年、月、计数(不同用户)作为用户
从
(
选择 YEAR(date) 作为年份,MONTH(date) 作为月份,userid 作为用户,sum(activity_count) 作为活动
从表
按 YEAR(date)、MONTH(date)、userid 分组
活动> 10
按 YEAR(date), MONTH(date) 排序
) t1
按年、月分组

不是 SQL 专家,我相信这可以改进,并希望对此提供意见。

不过,我更大的目标是逐月计算,其中有多少用户是新用户或上个月重复用户。如果没有难看的嵌套或连接,我不知道该怎么做,我觉得它应该相当简单。

提前致谢。

4

1 回答 1

0

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

于 2013-06-24T19:36:31.437 回答