选择在30天内每周至少玩2次或更多游戏的唯一用户(sql/大查询)

mv1qrgav  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(275)

我有一个用户玩多个游戏6个月的数据
我有表名:app\u click
列名:-用户id,日期(用户点击游戏的日期),
应用程序名称,
应用程序点击(每个用户的点击总数)
如果条目存在于用户单击应用程序之前(即播放)
问:我正在寻找的独特的用户谁玩游戏每周至少2次或以上的30天或每季度
像这样的解决方案:玩的用户总数:100(也玩过其他游戏的用户)
只玩过的用户总数:30(只玩过的用户)
玩过和其他游戏的用户总数:70(使用玩其他游戏的用户)

dbf7pr2w

dbf7pr2w1#

可以使用两个聚合级别:

select countif(num_abc > 0) as num_abc_users,
       countif(num_abc > 0 and num_other = 0) as num_abc_only,
       countif(num_abc > 0 and num_other > 0) as num_abc_plus_other 
from (select user_id, countif(app_name = 'ABC') as num_abc, countif(app_name <> 'ABC') then num_other
      from t
      group by user_id
     ) t;

子查询为每个用户汇总。然后,外部系统汇总这些结果。

相关问题