SELECT lgin.month1 ,IF(lgin.platid = 1,'安卓','iOS') AS platid ,COUNT(DISTINCT lgin.vopenid) AS DAU ,SUM(imoney) AS imoney ,ROUND(SUM(imoney)/COUNT(DISTINCT lgin.vopenid),2) AS ARPU FROM ( SELECT dt ,substr(dt,1,6) as month1 ,vopenid ,platid FROM ods_shootgame_playerlogin_day WHERE dt BETWEEN 20170606 AND 20180701 AND platid IN (0, 1) )lgin LEFT JOIN ( SELECT dt ,vopenid ,platid ,imoney FROM ods_shootgame_playerwater_day WHERE dt BETWEEN 20170606 AND 20180701 AND platid IN ('0', '1') )wt ON lgin.dt = wt.dt AND lgin.vopenid = wt.vopenid AND lgin.platid = wt.platid GROUP BY lgin.month1 ,IF(lgin.platid = 1,'安卓','iOS'); 这段代码计算什么
时间: 2024-02-14 10:30:49 浏览: 24
这段代码计算了在2017年6月6日至2018年7月1日期间,安卓和iOS平台每月的DAU(Daily Active Users)、总收入(imoney)和ARPU(Average Revenue Per User)。
具体步骤如下:
1. 内部查询(子查询)lgin选择了ods_shootgame_playerlogin_day表中满足条件的数据,包括日期(dt)、月份(month1)、用户ID(vopenid)和平台ID(platid)。
2. 内部查询wt选择了ods_shootgame_playerwater_day表中满足条件的数据,包括日期(dt)、用户ID(vopenid)、平台ID(platid)和收入金额(imoney)。
3. 通过左连接将lgin和wt两个查询的结果进行合并,合并条件为日期、用户ID和平台ID。
4. 在合并后的结果上进行分组,按照月份(month1)和平台ID(platid)进行分组。
5. 对每个分组计算DAU(使用COUNT(DISTINCT lgin.vopenid)统计不重复的用户数)、总收入(使用SUM(imoney)统计收入总额)和ARPU(使用SUM(imoney)/COUNT(DISTINCT lgin.vopenid)计算每个用户的平均收入)。
6. 最后,查询结果包括月份(month1)、平台名称(根据platid进行转换得到的安卓或iOS)、DAU、总收入和ARPU。