Pārlūkot izejas kodu

修改内容:角色战力排行榜

lth 1 gadu atpakaļ
vecāks
revīzija
04ca49cbf9

+ 542 - 165
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/RoleManageServiceImpl.java

@@ -1873,31 +1873,30 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 	server_id, -- 区服ID
                 	MAX(server_name) as server_name, -- 区服名
                 	MAX(dt) as dt, -- 开服日期
-                	TIMESTAMPDIFF(DAY, MAX(dt), NOW()) start_day, -- 开服天数
                 	boss_server_id, -- 合服ID
                 	MAX(boss_server_name) as boss_server_name, -- 合服名
                 	MAX(merge_time) as merge_time , -- 合服时间
                 	MAX(sum_server_count) as sum_server_count, -- 合服次数
                 	SUM(server_combat_num) as server_combat_num, -- 区服战力
-                    SUM(new_user_count) as new_user_count, -- 新用户人数
-                    SUM(create_role_count) as create_role_count, -- 创角人数
-                    SUM(role_count) as role_count, -- 角色数量
-                    SUM(total_num) as total_num, -- 总付费人数
+                	MAX(c.new_user_count) as new_user_count, -- 新用户人数
+                	MAX(d.create_role_count) as create_role_count , -- 创角人数
+                    MAX(b.role_num) as role_count , -- 角色数量
+                    MAX(e.total_num) as total_num, -- 总付费人数
                     SUM(total_amount) as total_amount, -- 总付费金额
-                    ROUND(IF(SUM(total_num) > 0, SUM(total_amount) / SUM(total_num), 0), 2) as total_arppu, -- 总付费ARPPU
-                    ROUND(IF(SUM(create_role_count) > 0, SUM(total_num) / SUM(create_role_count), 0), 4) as amount_rate, -- 付费率
+                    ROUND(IF(MAX(e.total_num) > 0, SUM(total_amount) / MAX(e.total_num), 0), 2) as total_arppu, -- 总付费ARPPU
+                    ROUND(IF(SUM(d.create_role_count) > 0, MAX(e.total_num) / SUM(d.create_role_count), 0), 4) as amount_rate, -- 付费率
                     SUM(ba1) as ba1, -- 今日付费金额
-                    SUM(ba1_num) as ba1_num, -- 今日付费人数
+                    MAX(e.ba1_num) as ba1_num, -- 今日付费人数
                     SUM(ba1_count) as ba1_count, -- 今日付费次数
-                    SUM(ba1_active_num) as ba1_active_num, -- 今日活跃人数
+                    MAX(f.ba1_active_num) as ba1_active_num, -- 今日活跃人数
                     SUM(ba2) as ba2, -- 昨日付费金额
-                    SUM(ba2_num) as ba2_num, -- 昨日付费人数
+                    MAX(e.ba2_num) as ba2_num, -- 昨日付费人数
                     SUM(ba2_count) as ba2_count, -- 昨日付费次数
-                    SUM(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
+                    MAX(f.ba2_active_num) as ba2_active_num, -- 昨日活跃人数
                     SUM(ba3) as ba3, -- 前天付费金额
-                    SUM(ba3_num) as ba3_num, -- 前天付费人数
+                    MAX(e.ba3_num) as ba3_num, -- 前天付费人数
                     SUM(ba3_count) as ba3_count, -- 前天付费次数
-                    SUM(ba3_active_num) as ba3_active_num -- 前天活跃人数
+                    MAX(f.ba3_active_num) as ba3_active_num -- 前天活跃人数
                 FROM (
                 	SELECT
                 		-- 子查询,查询每个父游戏-原始区服维度的信息
@@ -1914,23 +1913,13 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 		MAX(merge_time) as merge_time , -- 合服时间
                 		MAX(sum_server_count) as sum_server_count, -- 合服次数
                 		SUM(server_combat_num) as server_combat_num, -- 区服战力
-                	    SUM(new_user_count) as new_user_count, -- 新用户人数
-                	    SUM(create_role_count) as create_role_count, -- 创角人数
-                	    SUM(role_count) as role_count, -- 角色数量
-                	    SUM(total_num) as total_num, -- 总付费人数
                 	    SUM(total_amount) as total_amount, -- 总付费金额
                 	    SUM(ba1) as ba1, -- 今日付费金额
-                	    SUM(ba1_num) as ba1_num, -- 今日付费人数
                 	    SUM(ba1_count) as ba1_count, -- 今日付费次数
-                	    SUM(ba1_active_num) as ba1_active_num, -- 今日活跃人数
                 	    SUM(ba2) as ba2, -- 昨日付费金额
-                	    SUM(ba2_num) as ba2_num, -- 昨日付费人数
                 	    SUM(ba2_count) as ba2_count, -- 昨日付费次数
-                	    SUM(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
                 	    SUM(ba3) as ba3, -- 前天付费金额
-                	    SUM(ba3_num) as ba3_num, -- 前天付费人数
-                	    SUM(ba3_count) as ba3_count, -- 前天付费次数
-                	    SUM(ba3_active_num) as ba3_active_num -- 前天活跃人数
+                	    SUM(ba3_count) as ba3_count -- 前天付费次数
                 	FROM (
                 		-- 子查询,查询每个子游戏-原始区服维度的信息
                 		SELECT
@@ -1949,27 +1938,139 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 			MAX(merge_time) as merge_time , -- 合服时间
                 			MAX(sum_server_count) as sum_server_count, -- 合服次数
                 			MAX(server_combat_num) as server_combat_num, -- 区服战力
-                			MAX(new_user_count) as new_user_count, -- 新用户人数
-                			MAX(create_role_count) as create_role_count, -- 创角人数
-                			MAX(role_count) as role_count, -- 角色数量
-                			MAX(total_num) as total_num, -- 总付费人数
                 			MAX(total_amount) as total_amount, -- 总付费金额
                 			MAX(ba1) as ba1, -- 今日付费金额
-                			MAX(ba1_num) as ba1_num, -- 今日付费人数
                 			MAX(ba1_count) as ba1_count, -- 今日付费次数
-                			MAX(ba1_active_num) as ba1_active_num, -- 今日活跃人数
                 			MAX(ba2) as ba2, -- 昨日付费金额
-                			MAX(ba2_num) as ba2_num, -- 昨日付费人数
                 			MAX(ba2_count) as ba2_count, -- 昨日付费次数
-                			MAX(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
                 			MAX(ba3) as ba3, -- 前天付费金额
-                			MAX(ba3_num) as ba3_num, -- 前天付费人数
-                			MAX(ba3_count) as ba3_count, -- 前天付费次数
-                			MAX(ba3_active_num) as ba3_active_num -- 前天活跃人数
+                			MAX(ba3_count) as ba3_count -- 前天付费次数
                 		FROM game_ads.ads_role_combat_num_ranking
                 		GROUP BY game_id ,parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
                 	) a GROUP BY parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
                 ) a
+                LEFT JOIN (
+                	SELECT
+                		-- 超父-原始区服维度
+                		source_system as b_source_system,
+                		super_game_id as b_super_game_id,
+                		server_id as b_server_id,
+                		boss_server_id as b_boss_server_id,
+                		COUNT(DISTINCT role_id) as role_num -- 角色数量
+                	FROM game_ads.ads_role_combat_num_ranking
+                	GROUP BY super_game_id, source_system, server_id , boss_server_id
+                ) b on a.source_system = b.b_source_system AND a.server_id = b.b_server_id AND a.super_game_id = b.b_super_game_id AND a.boss_server_id = b.b_boss_server_id
+                LEFT JOIN (
+                	SELECT
+                		-- 超父-原始区服维度
+                		a.source_system as c_source_system,
+                		a.super_game_id as c_super_game_id,
+                		a.server_id as c_server_id,
+                		b.boss_server_id as c_boss_server_id,
+                		COUNT(a.association_user_id) as new_user_count -- 新用户人数
+                	FROM (
+                		SELECT
+                			a.source_system ,
+                			b.id,
+                			a.game_id ,
+                			a.server_id,
+                			a.role_id ,
+                			a.role_name ,
+                			b.association_user_id ,
+                			a.create_time ,
+                			IFNULL(c.super_game_id , a.game_id) as super_game_id,
+                			ROW_NUMBER()over(partition by b.association_user_id , a.source_system order by a.create_time asc, a.user_id asc) as num
+                		FROM dm_game_order.t_game_user_role a
+                		LEFT JOIN dm_game_order.t_game_user b on a.source_system = b.source_system AND a.user_id = b.id
+                		LEFT JOIN dm_game_order.t_game c on a.source_system = c.source_system AND a.game_id = c.id
+                	) a
+                	LEFT JOIN (
+                		SELECT
+                			source_system,
+                			server_id,
+                			boss_server_id,
+                			super_game_id
+                		FROM game_ads.ads_role_combat_num_ranking
+                		GROUP BY source_system, super_game_id, server_id, boss_server_id
+                	) b on a.source_system = b.source_system AND a.server_id = b.server_id AND a.super_game_id = b.super_game_id
+                	WHERE num = 1
+                	GROUP BY a.super_game_id, a.server_id, b.boss_server_id, a.source_system
+                ) c on a.source_system = c.c_source_system AND a.super_game_id = c.c_super_game_id AND a.server_id = c.c_server_id AND a.boss_server_id = c.c_boss_server_id
+                LEFT JOIN (
+                	SELECT
+                		-- 超父-原始区服维度
+                		source_system as d_source_system,
+                		super_game_id as d_super_game_id,
+                		server_id as d_server_id,
+                		boss_server_id as d_boss_server_id,
+                		COUNT(DISTINCT user_id) as create_role_count -- 创角人数
+                	FROM game_ads.ads_role_combat_num_ranking
+                	GROUP BY super_game_id, source_system, server_id , boss_server_id
+                ) d on a.source_system = d.d_source_system AND a.server_id = d.d_server_id AND a.super_game_id = d.d_super_game_id AND a.boss_server_id = d.d_boss_server_id
+                LEFT JOIN (
+                	SELECT
+                		-- 超父-原始区服维度
+                		a.source_system as e_source_system,
+                		a.server_id as e_server_id,
+                		c.super_game_id as e_super_game_id,
+                		d.boss_server_id as e_boss_server_id,
+                		count(DISTINCT IF(Date(NOW()) = day,user_id,NULL)) as ba1_num, -- 今日充值人数
+                		count(DISTINCT IF(date_add(Date(NOW()),-1)=day,user_id,NULL)) as ba2_num, -- 昨日充值人数
+                		count(DISTINCT IF(date_add(Date(NOW()),-2)=day,user_id,NULL)) as ba3_num, -- 前天充值人数
+                		count(DISTINCT user_id) as total_num -- 总充值人数
+                	FROM dm_game_order.t_game_server a
+                	LEFT JOIN game_dw.dw_order_day_amount b
+                	on a.source_system = b.source_system and a.server_id =b.server_id and a.game_id =b.game_id
+                	LEFT JOIN (
+                		SELECT
+                			source_system ,
+                			id,
+                			IFNULL(parent_id, id) as parent_id,
+                			IFNULL(super_game_id, id) as super_game_id
+                		FROM dm_game_order.t_game
+                	) c on a.source_system = c.source_system AND a.game_id = c.id
+                	LEFT JOIN (
+                		SELECT
+                			source_system,
+                			server_id,
+                			boss_server_id,
+                			super_game_id
+                		FROM game_ads.ads_role_combat_num_ranking
+                		GROUP BY source_system, super_game_id, server_id, boss_server_id
+                	) d on a.source_system = d.source_system AND a.server_id = d.server_id AND c.super_game_id = d.super_game_id
+                	group by a.source_system ,a.server_id ,d.boss_server_id, c.super_game_id
+                ) e on a.source_system = e.e_source_system AND a.server_id = e.e_server_id AND a.super_game_id = e.e_super_game_id AND a.boss_server_id = e.e_boss_server_id
+                LEFT JOIN (
+                	select
+                		-- 超父-原始区服维度
+                		a.source_system as f_source_system,
+                		a.server_id as f_server_id,
+                		d.boss_server_id as f_boss_server_id,
+                		c.super_game_id as f_super_game_id,
+                		count(distinct IF(Date(NOW()) = dt,user_id,NULL)) as ba1_active_num, -- 今日活跃人数
+                		count(distinct IF(date_add(Date(NOW()),-1)=dt,user_id,NULL)) as ba2_active_num, -- 昨日活跃人数
+                		count(distinct IF(date_add(Date(NOW()),-2)=dt,user_id,NULL)) as ba3_active_num -- 前日活跃人数
+                	from dm_game_order.t_game_server a
+                	left join game_dw.dw_active_log b on a.source_system = b.source_system and a.server_id = b.server_id and a.game_id = b.game_id
+                	LEFT JOIN (
+                		SELECT
+                			source_system ,
+                			id,
+                			IFNULL(parent_id, id) as parent_id,
+                			IFNULL(super_game_id, id) as super_game_id
+                		FROM dm_game_order.t_game
+                	) c on a.source_system = c.source_system AND a.game_id = c.id
+                	LEFT JOIN (
+                		SELECT
+                			source_system,
+                			server_id,
+                			boss_server_id,
+                			super_game_id
+                		FROM game_ads.ads_role_combat_num_ranking
+                		GROUP BY source_system, super_game_id, server_id, boss_server_id
+                	) d on a.source_system = d.source_system AND a.server_id = d.server_id AND c.super_game_id = d.super_game_id
+                	group by a.source_system ,a.server_id ,d.boss_server_id, c.super_game_id
+                ) f on a.source_system = f.f_source_system AND a.server_id = f.f_server_id AND a.super_game_id = f.f_super_game_id AND a.boss_server_id = f.f_boss_server_id
                 """;
     }
 
@@ -1995,25 +2096,25 @@ public class RoleManageServiceImpl implements IRoleManageService {
                     	MAX(merge_time) as merge_time , -- 合服时间
                     	MAX(sum_server_count) as sum_server_count, -- 合服次数
                     	SUM(server_combat_num) as server_combat_num, -- 区服战力
-                        SUM(new_user_count) as new_user_count, -- 新用户人数
-                        SUM(create_role_count) as create_role_count, -- 创角人数
-                        SUM(role_count) as role_count, -- 角色数量
-                        SUM(total_num) as total_num, -- 总付费人数
+                    	MAX(c.new_user_count) as new_user_count, -- 新用户人数
+                    	MAX(d.create_role_count) as create_role_count , -- 创角人数
+                        MAX(b.role_num) as role_count , -- 角色数量
+                        MAX(e.total_num) as total_num, -- 总付费人数
                         SUM(total_amount) as total_amount, -- 总付费金额
-                        ROUND(IF(SUM(total_num) > 0, SUM(total_amount) / SUM(total_num), 0), 2) as total_arppu, -- 总付费ARPPU
-                        ROUND(IF(SUM(create_role_count) > 0, SUM(total_num) / SUM(create_role_count), 0), 4) as amount_rate, -- 付费率
+                        ROUND(IF(MAX(e.total_num) > 0, SUM(total_amount) / MAX(e.total_num), 0), 2) as total_arppu, -- 总付费ARPPU
+                        ROUND(IF(SUM(d.create_role_count) > 0, MAX(e.total_num) / SUM(d.create_role_count), 0), 4) as amount_rate, -- 付费率
                         SUM(ba1) as ba1, -- 今日付费金额
-                        SUM(ba1_num) as ba1_num, -- 今日付费人数
+                        MAX(e.ba1_num) as ba1_num, -- 今日付费人数
                         SUM(ba1_count) as ba1_count, -- 今日付费次数
-                        SUM(ba1_active_num) as ba1_active_num, -- 今日活跃人数
+                        MAX(f.ba1_active_num) as ba1_active_num, -- 今日活跃人数
                         SUM(ba2) as ba2, -- 昨日付费金额
-                        SUM(ba2_num) as ba2_num, -- 昨日付费人数
+                        MAX(e.ba2_num) as ba2_num, -- 昨日付费人数
                         SUM(ba2_count) as ba2_count, -- 昨日付费次数
-                        SUM(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
+                        MAX(f.ba2_active_num) as ba2_active_num, -- 昨日活跃人数
                         SUM(ba3) as ba3, -- 前天付费金额
-                        SUM(ba3_num) as ba3_num, -- 前天付费人数
+                        MAX(e.ba3_num) as ba3_num, -- 前天付费人数
                         SUM(ba3_count) as ba3_count, -- 前天付费次数
-                        SUM(ba3_active_num) as ba3_active_num -- 前天活跃人数
+                        MAX(f.ba3_active_num) as ba3_active_num -- 前天活跃人数
                     FROM (
                     	SELECT
                     		-- 子查询,查询每个父游戏-原始区服维度的信息
@@ -2030,23 +2131,13 @@ public class RoleManageServiceImpl implements IRoleManageService {
                     		MAX(merge_time) as merge_time , -- 合服时间
                     		MAX(sum_server_count) as sum_server_count, -- 合服次数
                     		SUM(server_combat_num) as server_combat_num, -- 区服战力
-                    	    SUM(new_user_count) as new_user_count, -- 新用户人数
-                    	    SUM(create_role_count) as create_role_count, -- 创角人数
-                    	    SUM(role_count) as role_count, -- 角色数量
-                    	    SUM(total_num) as total_num, -- 总付费人数
                     	    SUM(total_amount) as total_amount, -- 总付费金额
                     	    SUM(ba1) as ba1, -- 今日付费金额
-                    	    SUM(ba1_num) as ba1_num, -- 今日付费人数
                     	    SUM(ba1_count) as ba1_count, -- 今日付费次数
-                    	    SUM(ba1_active_num) as ba1_active_num, -- 今日活跃人数
                     	    SUM(ba2) as ba2, -- 昨日付费金额
-                    	    SUM(ba2_num) as ba2_num, -- 昨日付费人数
                     	    SUM(ba2_count) as ba2_count, -- 昨日付费次数
-                    	    SUM(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
                     	    SUM(ba3) as ba3, -- 前天付费金额
-                    	    SUM(ba3_num) as ba3_num, -- 前天付费人数
-                    	    SUM(ba3_count) as ba3_count, -- 前天付费次数
-                    	    SUM(ba3_active_num) as ba3_active_num -- 前天活跃人数
+                    	    SUM(ba3_count) as ba3_count -- 前天付费次数
                     	FROM (
                     		-- 子查询,查询每个子游戏-原始区服维度的信息
                     		SELECT
@@ -2065,27 +2156,139 @@ public class RoleManageServiceImpl implements IRoleManageService {
                     			MAX(merge_time) as merge_time , -- 合服时间
                     			MAX(sum_server_count) as sum_server_count, -- 合服次数
                     			MAX(server_combat_num) as server_combat_num, -- 区服战力
-                    			MAX(new_user_count) as new_user_count, -- 新用户人数
-                    			MAX(create_role_count) as create_role_count, -- 创角人数
-                    			MAX(role_count) as role_count, -- 角色数量
-                    			MAX(total_num) as total_num, -- 总付费人数
                     			MAX(total_amount) as total_amount, -- 总付费金额
                     			MAX(ba1) as ba1, -- 今日付费金额
-                    			MAX(ba1_num) as ba1_num, -- 今日付费人数
                     			MAX(ba1_count) as ba1_count, -- 今日付费次数
-                    			MAX(ba1_active_num) as ba1_active_num, -- 今日活跃人数
                     			MAX(ba2) as ba2, -- 昨日付费金额
-                    			MAX(ba2_num) as ba2_num, -- 昨日付费人数
                     			MAX(ba2_count) as ba2_count, -- 昨日付费次数
-                    			MAX(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
                     			MAX(ba3) as ba3, -- 前天付费金额
-                    			MAX(ba3_num) as ba3_num, -- 前天付费人数
-                    			MAX(ba3_count) as ba3_count, -- 前天付费次数
-                    			MAX(ba3_active_num) as ba3_active_num -- 前天活跃人数
+                    			MAX(ba3_count) as ba3_count -- 前天付费次数
                     		FROM game_ads.ads_role_combat_num_ranking
                     		GROUP BY game_id ,parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
                     	) a GROUP BY parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
                     ) a
+                    LEFT JOIN (
+                    	SELECT
+                    		-- 超父-原始区服维度
+                    		source_system as b_source_system,
+                    		super_game_id as b_super_game_id,
+                    		server_id as b_server_id,
+                    		boss_server_id as b_boss_server_id,
+                    		COUNT(DISTINCT role_id) as role_num -- 角色数量
+                    	FROM game_ads.ads_role_combat_num_ranking
+                    	GROUP BY super_game_id, source_system, server_id , boss_server_id
+                    ) b on a.source_system = b.b_source_system AND a.server_id = b.b_server_id AND a.super_game_id = b.b_super_game_id AND a.boss_server_id = b.b_boss_server_id
+                    LEFT JOIN (
+                    	SELECT
+                    		-- 超父-原始区服维度
+                    		a.source_system as c_source_system,
+                    		a.super_game_id as c_super_game_id,
+                    		a.server_id as c_server_id,
+                    		b.boss_server_id as c_boss_server_id,
+                    		COUNT(a.association_user_id) as new_user_count -- 新用户人数
+                    	FROM (
+                    		SELECT
+                    			a.source_system ,
+                    			b.id,
+                    			a.game_id ,
+                    			a.server_id,
+                    			a.role_id ,
+                    			a.role_name ,
+                    			b.association_user_id ,
+                    			a.create_time ,
+                    			IFNULL(c.super_game_id , a.game_id) as super_game_id,
+                    			ROW_NUMBER()over(partition by b.association_user_id , a.source_system order by a.create_time asc, a.user_id asc) as num
+                    		FROM dm_game_order.t_game_user_role a
+                    		LEFT JOIN dm_game_order.t_game_user b on a.source_system = b.source_system AND a.user_id = b.id
+                    		LEFT JOIN dm_game_order.t_game c on a.source_system = c.source_system AND a.game_id = c.id
+                    	) a
+                    	LEFT JOIN (
+                    		SELECT
+                    			source_system,
+                    			server_id,
+                    			boss_server_id,
+                    			super_game_id
+                    		FROM game_ads.ads_role_combat_num_ranking
+                    		GROUP BY source_system, super_game_id, server_id, boss_server_id
+                    	) b on a.source_system = b.source_system AND a.server_id = b.server_id AND a.super_game_id = b.super_game_id
+                    	WHERE num = 1
+                    	GROUP BY a.super_game_id, a.server_id, b.boss_server_id, a.source_system
+                    ) c on a.source_system = c.c_source_system AND a.super_game_id = c.c_super_game_id AND a.server_id = c.c_server_id AND a.boss_server_id = c.c_boss_server_id
+                    LEFT JOIN (
+                    	SELECT
+                    		-- 超父-原始区服维度
+                    		source_system as d_source_system,
+                    		super_game_id as d_super_game_id,
+                    		server_id as d_server_id,
+                    		boss_server_id as d_boss_server_id,
+                    		COUNT(DISTINCT user_id) as create_role_count -- 创角人数
+                    	FROM game_ads.ads_role_combat_num_ranking
+                    	GROUP BY super_game_id, source_system, server_id , boss_server_id
+                    ) d on a.source_system = d.d_source_system AND a.server_id = d.d_server_id AND a.super_game_id = d.d_super_game_id AND a.boss_server_id = d.d_boss_server_id
+                    LEFT JOIN (
+                    	SELECT
+                    		-- 超父-原始区服维度
+                    		a.source_system as e_source_system,
+                    		a.server_id as e_server_id,
+                    		c.super_game_id as e_super_game_id,
+                    		d.boss_server_id as e_boss_server_id,
+                    		count(DISTINCT IF(Date(NOW()) = day,user_id,NULL)) as ba1_num, -- 今日充值人数
+                    		count(DISTINCT IF(date_add(Date(NOW()),-1)=day,user_id,NULL)) as ba2_num, -- 昨日充值人数
+                    		count(DISTINCT IF(date_add(Date(NOW()),-2)=day,user_id,NULL)) as ba3_num, -- 前天充值人数
+                    		count(DISTINCT user_id) as total_num -- 总充值人数
+                    	FROM dm_game_order.t_game_server a
+                    	LEFT JOIN game_dw.dw_order_day_amount b
+                    	on a.source_system = b.source_system and a.server_id =b.server_id and a.game_id =b.game_id
+                    	LEFT JOIN (
+                    		SELECT
+                    			source_system ,
+                    			id,
+                    			IFNULL(parent_id, id) as parent_id,
+                    			IFNULL(super_game_id, id) as super_game_id
+                    		FROM dm_game_order.t_game
+                    	) c on a.source_system = c.source_system AND a.game_id = c.id
+                    	LEFT JOIN (
+                    		SELECT
+                    			source_system,
+                    			server_id,
+                    			boss_server_id,
+                    			super_game_id
+                    		FROM game_ads.ads_role_combat_num_ranking
+                    		GROUP BY source_system, super_game_id, server_id, boss_server_id
+                    	) d on a.source_system = d.source_system AND a.server_id = d.server_id AND c.super_game_id = d.super_game_id
+                    	group by a.source_system ,a.server_id ,d.boss_server_id, c.super_game_id
+                    ) e on a.source_system = e.e_source_system AND a.server_id = e.e_server_id AND a.super_game_id = e.e_super_game_id AND a.boss_server_id = e.e_boss_server_id
+                    LEFT JOIN (
+                    	select
+                    		-- 超父-原始区服维度
+                    		a.source_system as f_source_system,
+                    		a.server_id as f_server_id,
+                    		d.boss_server_id as f_boss_server_id,
+                    		c.super_game_id as f_super_game_id,
+                    		count(distinct IF(Date(NOW()) = dt,user_id,NULL)) as ba1_active_num, -- 今日活跃人数
+                    		count(distinct IF(date_add(Date(NOW()),-1)=dt,user_id,NULL)) as ba2_active_num, -- 昨日活跃人数
+                    		count(distinct IF(date_add(Date(NOW()),-2)=dt,user_id,NULL)) as ba3_active_num -- 前日活跃人数
+                    	from dm_game_order.t_game_server a
+                    	left join game_dw.dw_active_log b on a.source_system = b.source_system and a.server_id = b.server_id and a.game_id = b.game_id
+                    	LEFT JOIN (
+                    		SELECT
+                    			source_system ,
+                    			id,
+                    			IFNULL(parent_id, id) as parent_id,
+                    			IFNULL(super_game_id, id) as super_game_id
+                    		FROM dm_game_order.t_game
+                    	) c on a.source_system = c.source_system AND a.game_id = c.id
+                    	LEFT JOIN (
+                    		SELECT
+                    			source_system,
+                    			server_id,
+                    			boss_server_id,
+                    			super_game_id
+                    		FROM game_ads.ads_role_combat_num_ranking
+                    		GROUP BY source_system, super_game_id, server_id, boss_server_id
+                    	) d on a.source_system = d.source_system AND a.server_id = d.server_id AND c.super_game_id = d.super_game_id
+                    	group by a.source_system ,a.server_id ,d.boss_server_id, c.super_game_id
+                    ) f on a.source_system = f.f_source_system AND a.server_id = f.f_server_id AND a.super_game_id = f.f_super_game_id AND a.boss_server_id = f.f_boss_server_id
                 """ + cri+
                 """
                 ) a
@@ -2108,32 +2311,32 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 	MAX(merge_time) as merge_time , -- 合服时间
                 	TIMESTAMPDIFF(DAY, MAX(merge_time), NOW()) start_day, -- 开服天数
                 	MAX(sum_server_count) as sum_server_count, -- 合服次数
-                	MAX(c.is_merge) as is_merge, -- 是否参与过合服
+                	MAX(h.is_merge) as is_merge, -- 是否参与过合服
                 	MAX(b.main_server_id) as main_server_id, -- 主服ID
                 	MAX(b.main_server_name) as main_server_name, -- 主服名
                 	MAX(son_server_ids) as son_server_ids, -- 合服的子服ID列表
                     MAX(source_server_ids) as source_server_ids, -- 子服ID列表
                     MAX(source_server_ids_name) as source_server_ids_name, -- 子服名列表
                 	SUM(server_combat_num) as server_combat_num, -- 区服战力
-                    SUM(new_user_count) as new_user_count, -- 新用户人数
-                    SUM(create_role_count) as create_role_count, -- 创角人数
-                    SUM(role_count) as role_count, -- 角色数量
-                    SUM(total_num) as total_num, -- 总付费人数
+                    MAX(d.new_user_count) as new_user_count, -- 新用户人数
+                    MAX(e.create_role_count) as create_role_count, -- 创角人数
+                    MAX(c.role_count) as role_count, -- 角色数量
+                    MAX(f.total_num) as total_num, -- 总付费人数
                     SUM(total_amount) as total_amount, -- 总付费金额
-                    ROUND(IF(SUM(total_num) > 0, SUM(total_amount) / SUM(total_num), 0), 2) as total_arppu, -- 总付费ARPPU
-                    ROUND(IF(SUM(create_role_count) > 0, SUM(total_num) / SUM(create_role_count), 0), 4) as amount_rate, -- 付费率
+                    ROUND(IF(MAX(f.total_num) > 0, SUM(total_amount) / MAX(f.total_num), 0), 2) as total_arppu, -- 总付费ARPPU
+                    ROUND(IF(MAX(e.create_role_count) > 0, MAX(f.total_num) / MAX(e.create_role_count), 0), 4) as amount_rate, -- 付费率
                     SUM(ba1) as ba1, -- 今日付费金额
-                    SUM(ba1_num) as ba1_num, -- 今日付费人数
+                    MAX(f.ba1_num) as ba1_num, -- 今日付费人数
                     SUM(ba1_count) as ba1_count, -- 今日付费次数
-                    SUM(ba1_active_num) as ba1_active_num, -- 今日活跃人数
+                    MAX(g.ba1_active_num) as ba1_active_num, -- 今日活跃人数
                     SUM(ba2) as ba2, -- 昨日付费金额
-                    SUM(ba2_num) as ba2_num, -- 昨日付费人数
+                    MAX(f.ba2_num) as ba2_num, -- 昨日付费人数
                     SUM(ba2_count) as ba2_count, -- 昨日付费次数
-                    SUM(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
+                    MAX(g.ba2_active_num) as ba2_active_num, -- 昨日活跃人数
                     SUM(ba3) as ba3, -- 前天付费金额
-                    SUM(ba3_num) as ba3_num, -- 前天付费人数
+                    MAX(f.ba3_num) as ba3_num, -- 前天付费人数
                     SUM(ba3_count) as ba3_count, -- 前天付费次数
-                    SUM(ba3_active_num) as ba3_active_num -- 前天活跃人数
+                    MAX(g.ba3_active_num) as ba3_active_num -- 前天活跃人数
                 FROM (
                 	SELECT
                 		-- 子查询,查询每个超父游戏-原始区服维度的信息
@@ -2147,23 +2350,13 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 		MAX(merge_time) as merge_time , -- 合服时间
                 		MAX(sum_server_count) as sum_server_count, -- 合服次数
                 		SUM(server_combat_num) as server_combat_num, -- 区服战力
-                	    SUM(new_user_count) as new_user_count, -- 新用户人数
-                	    SUM(create_role_count) as create_role_count, -- 创角人数
-                	    SUM(role_count) as role_count, -- 角色数量
-                	    SUM(total_num) as total_num, -- 总付费人数
                 	    SUM(total_amount) as total_amount, -- 总付费金额
                 	    SUM(ba1) as ba1, -- 今日付费金额
-                	    SUM(ba1_num) as ba1_num, -- 今日付费人数
                 	    SUM(ba1_count) as ba1_count, -- 今日付费次数
-                	    SUM(ba1_active_num) as ba1_active_num, -- 今日活跃人数
                 	    SUM(ba2) as ba2, -- 昨日付费金额
-                	    SUM(ba2_num) as ba2_num, -- 昨日付费人数
                 	    SUM(ba2_count) as ba2_count, -- 昨日付费次数
-                	    SUM(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
                 	    SUM(ba3) as ba3, -- 前天付费金额
-                	    SUM(ba3_num) as ba3_num, -- 前天付费人数
-                	    SUM(ba3_count) as ba3_count, -- 前天付费次数
-                	    SUM(ba3_active_num) as ba3_active_num -- 前天活跃人数
+                	    SUM(ba3_count) as ba3_count -- 前天付费次数
                 	FROM (
                 		SELECT
                 			-- 子查询,查询每个父游戏-区服维度的信息
@@ -2179,23 +2372,13 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 			MAX(merge_time) as merge_time , -- 合服时间
                 			MAX(sum_server_count) as sum_server_count, -- 合服次数
                 			SUM(server_combat_num) as server_combat_num, -- 区服战力
-                		    SUM(new_user_count) as new_user_count, -- 新用户人数
-                		    SUM(create_role_count) as create_role_count, -- 创角人数
-                		    SUM(role_count) as role_count, -- 角色数量
-                		    SUM(total_num) as total_num, -- 总付费人数
                 		    SUM(total_amount) as total_amount, -- 总付费金额
                 		    SUM(ba1) as ba1, -- 今日付费金额
-                		    SUM(ba1_num) as ba1_num, -- 今日付费人数
                 		    SUM(ba1_count) as ba1_count, -- 今日付费次数
-                		    SUM(ba1_active_num) as ba1_active_num, -- 今日活跃人数
                 		    SUM(ba2) as ba2, -- 昨日付费金额
-                		    SUM(ba2_num) as ba2_num, -- 昨日付费人数
                 		    SUM(ba2_count) as ba2_count, -- 昨日付费次数
-                		    SUM(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
                 		    SUM(ba3) as ba3, -- 前天付费金额
-                		    SUM(ba3_num) as ba3_num, -- 前天付费人数
-                		    SUM(ba3_count) as ba3_count, -- 前天付费次数
-                		    SUM(ba3_active_num) as ba3_active_num -- 前天活跃人数
+                		    SUM(ba3_count) as ba3_count -- 前天付费次数
                 		FROM (
                 			-- 子查询,查询每个子游戏-原始区服维度的信息
                 			SELECT
@@ -2213,23 +2396,13 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 				MAX(merge_time) as merge_time , -- 合服时间
                 				MAX(sum_server_count) as sum_server_count, -- 合服次数
                 				MAX(server_combat_num) as server_combat_num, -- 区服战力
-                				MAX(new_user_count) as new_user_count, -- 新用户人数
-                				MAX(create_role_count) as create_role_count, -- 创角人数
-                				MAX(role_count) as role_count, -- 角色数量
-                				MAX(total_num) as total_num, -- 总付费人数
                 				MAX(total_amount) as total_amount, -- 总付费金额
                 				MAX(ba1) as ba1, -- 今日付费金额
-                				MAX(ba1_num) as ba1_num, -- 今日付费人数
                 				MAX(ba1_count) as ba1_count, -- 今日付费次数
-                				MAX(ba1_active_num) as ba1_active_num, -- 今日活跃人数
                 				MAX(ba2) as ba2, -- 昨日付费金额
-                				MAX(ba2_num) as ba2_num, -- 昨日付费人数
                 				MAX(ba2_count) as ba2_count, -- 昨日付费次数
-                				MAX(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
                 				MAX(ba3) as ba3, -- 前天付费金额
-                				MAX(ba3_num) as ba3_num, -- 前天付费人数
-                				MAX(ba3_count) as ba3_count, -- 前天付费次数
-                				MAX(ba3_active_num) as ba3_active_num -- 前天活跃人数
+                				MAX(ba3_count) as ba3_count -- 前天付费次数
                 			FROM game_ads.ads_role_combat_num_ranking
                 			GROUP BY game_id ,parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
                 		) a GROUP BY parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
@@ -2261,12 +2434,129 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 ) b ON a.source_system = b.b_source_system AND a.super_game_id = b.b_game_id AND a.boss_server_id = b.b_server_id
                 LEFT JOIN (
                 	SELECT
+                		-- 超父-合服维度
                 		source_system as c_source_system,
+                		super_game_id as c_super_game_id,
+                		boss_server_id as c_boss_server_id,
+                		COUNT(DISTINCT role_id) as role_count -- 角色数量
+                	FROM game_ads.ads_role_combat_num_ranking
+                	GROUP BY super_game_id, source_system, boss_server_id
+                ) c on a.source_system = c.c_source_system AND a.super_game_id = c.c_super_game_id AND a.boss_server_id = c.c_boss_server_id
+                LEFT JOIN (
+                	SELECT
+                		-- 超父-合服维度
+                		a.source_system as d_source_system,
+                		a.super_game_id as d_super_game_id,
+                		b.boss_server_id as d_boss_server_id,
+                		COUNT(a.association_user_id) as new_user_count -- 新用户人数
+                	FROM (
+                		SELECT
+                			a.source_system ,
+                			b.id,
+                			a.game_id ,
+                			a.server_id,
+                			a.role_id ,
+                			a.role_name ,
+                			b.association_user_id ,
+                			a.create_time ,
+                			IFNULL(c.super_game_id , a.game_id) as super_game_id,
+                			ROW_NUMBER()over(partition by b.association_user_id , a.source_system order by a.create_time asc, a.user_id asc) as num
+                		FROM dm_game_order.t_game_user_role a
+                		LEFT JOIN dm_game_order.t_game_user b on a.source_system = b.source_system AND a.user_id = b.id
+                		LEFT JOIN dm_game_order.t_game c on a.source_system = c.source_system AND a.game_id = c.id
+                	) a
+                	LEFT JOIN (
+                		SELECT
+                			source_system,
+                			server_id,
+                			boss_server_id,
+                			super_game_id
+                		FROM game_ads.ads_role_combat_num_ranking
+                		GROUP BY source_system, super_game_id, server_id, boss_server_id
+                	) b on a.source_system = b.source_system AND a.server_id = b.server_id AND a.super_game_id = b.super_game_id
+                	WHERE num = 1
+                	GROUP BY a.super_game_id, b.boss_server_id, a.source_system
+                ) d on a.source_system = d.d_source_system AND a.super_game_id = d.d_super_game_id AND a.boss_server_id = d.d_boss_server_id
+                LEFT JOIN (
+                	SELECT
+                		-- 超父-合服维度
+                		source_system as e_source_system,
+                		super_game_id as e_super_game_id,
+                		boss_server_id as e_boss_server_id,
+                		COUNT(DISTINCT user_id) as create_role_count -- 创角人数
+                	FROM game_ads.ads_role_combat_num_ranking
+                	GROUP BY super_game_id, source_system, boss_server_id
+                ) e on a.source_system = e.e_source_system AND a.super_game_id = e.e_super_game_id AND a.boss_server_id = e.e_boss_server_id
+                LEFT JOIN (
+                	SELECT
+                		-- 超父-合服维度
+                		a.source_system as f_source_system,
+                		c.super_game_id as f_super_game_id,
+                		d.boss_server_id as f_boss_server_id,
+                		count(DISTINCT IF(Date(NOW()) = day,user_id,NULL)) as ba1_num, -- 今日充值人数
+                		count(DISTINCT IF(date_add(Date(NOW()),-1)=day,user_id,NULL)) as ba2_num, -- 昨日充值人数
+                		count(DISTINCT IF(date_add(Date(NOW()),-2)=day,user_id,NULL)) as ba3_num, -- 前天充值人数
+                		count(DISTINCT user_id) as total_num -- 总充值人数
+                	FROM dm_game_order.t_game_server a
+                	LEFT JOIN game_dw.dw_order_day_amount b
+                	on a.source_system = b.source_system and a.server_id =b.server_id and a.game_id =b.game_id
+                	LEFT JOIN (
+                		SELECT
+                			source_system ,
+                			id,
+                			IFNULL(parent_id, id) as parent_id,
+                			IFNULL(super_game_id, id) as super_game_id
+                		FROM dm_game_order.t_game
+                	) c on a.source_system = c.source_system AND a.game_id = c.id
+                	LEFT JOIN (
+                		SELECT
+                			source_system,
+                			server_id,
+                			boss_server_id,
+                			super_game_id
+                		FROM game_ads.ads_role_combat_num_ranking
+                		GROUP BY source_system, super_game_id, server_id, boss_server_id
+                	) d on a.source_system = d.source_system AND a.server_id = d.server_id AND c.super_game_id = d.super_game_id
+                	group by a.source_system ,a.server_id ,d.boss_server_id, c.super_game_id
+                ) f on a.source_system = f.f_source_system AND a.super_game_id = f.f_super_game_id AND a.boss_server_id = f.f_boss_server_id
+                LEFT JOIN (
+                	select
+                		-- 超父-合服维度
+                		a.source_system as g_source_system,
+                		d.boss_server_id as g_boss_server_id,
+                		c.super_game_id as g_super_game_id,
+                		count(distinct IF(Date(NOW()) = dt,user_id,NULL)) as ba1_active_num, -- 今日活跃人数
+                		count(distinct IF(date_add(Date(NOW()),-1)=dt,user_id,NULL)) as ba2_active_num, -- 昨日活跃人数
+                		count(distinct IF(date_add(Date(NOW()),-2)=dt,user_id,NULL)) as ba3_active_num -- 前日活跃人数
+                	from dm_game_order.t_game_server a
+                	left join game_dw.dw_active_log b on a.source_system = b.source_system and a.server_id = b.server_id and a.game_id = b.game_id
+                	LEFT JOIN (
+                		SELECT
+                			source_system ,
+                			id,
+                			IFNULL(parent_id, id) as parent_id,
+                			IFNULL(super_game_id, id) as super_game_id
+                		FROM dm_game_order.t_game
+                	) c on a.source_system = c.source_system AND a.game_id = c.id
+                	LEFT JOIN (
+                		SELECT
+                			source_system,
+                			server_id,
+                			boss_server_id,
+                			super_game_id
+                		FROM game_ads.ads_role_combat_num_ranking
+                		GROUP BY source_system, super_game_id, server_id, boss_server_id
+                	) d on a.source_system = d.source_system AND a.server_id = d.server_id AND c.super_game_id = d.super_game_id
+                	group by a.source_system ,a.server_id ,d.boss_server_id, c.super_game_id
+                ) g on a.source_system = g.g_source_system AND a.super_game_id = g.g_super_game_id AND a.boss_server_id = g.g_boss_server_id
+                LEFT JOIN (
+                	SELECT
+                		source_system as h_source_system,
                 		game_id,
                 		server_id,
-                		is_merge
+                		is_merge -- 是否参与过合服
                 	FROM dm_game_order.t_game_server_merge
-                ) c on a.source_system = c.c_source_system AND a.boss_server_id = c.server_id AND a.super_game_id = c.game_id
+                ) h on a.source_system = h.h_source_system AND a.boss_server_id = h.server_id AND a.super_game_id = h.game_id
                 """;
     }
 
@@ -2289,32 +2579,32 @@ public class RoleManageServiceImpl implements IRoleManageService {
                     	MAX(merge_time) as merge_time , -- 合服时间
                     	TIMESTAMPDIFF(DAY, MAX(merge_time), NOW()) start_day, -- 开服天数
                     	MAX(sum_server_count) as sum_server_count, -- 合服次数
-                    	MAX(c.is_merge) as is_merge, -- 是否参与过合服
+                    	MAX(h.is_merge) as is_merge, -- 是否参与过合服
                     	MAX(b.main_server_id) as main_server_id, -- 主服ID
                     	MAX(b.main_server_name) as main_server_name, -- 主服名
                     	MAX(son_server_ids) as son_server_ids, -- 合服的子服ID列表
                         MAX(source_server_ids) as source_server_ids, -- 子服ID列表
                         MAX(source_server_ids_name) as source_server_ids_name, -- 子服名列表
                     	SUM(server_combat_num) as server_combat_num, -- 区服战力
-                        SUM(new_user_count) as new_user_count, -- 新用户人数
-                        SUM(create_role_count) as create_role_count, -- 创角人数
-                        SUM(role_count) as role_count, -- 角色数量
-                        SUM(total_num) as total_num, -- 总付费人数
+                        MAX(d.new_user_count) as new_user_count, -- 新用户人数
+                        MAX(e.create_role_count) as create_role_count, -- 创角人数
+                        MAX(c.role_count) as role_count, -- 角色数量
+                        MAX(f.total_num) as total_num, -- 总付费人数
                         SUM(total_amount) as total_amount, -- 总付费金额
-                        ROUND(IF(SUM(total_num) > 0, SUM(total_amount) / SUM(total_num), 0), 2) as total_arppu, -- 总付费ARPPU
-                        ROUND(IF(SUM(create_role_count) > 0, SUM(total_num) / SUM(create_role_count), 0), 4) as amount_rate, -- 付费率
+                        ROUND(IF(MAX(f.total_num) > 0, SUM(total_amount) / MAX(f.total_num), 0), 2) as total_arppu, -- 总付费ARPPU
+                        ROUND(IF(MAX(e.create_role_count) > 0, MAX(f.total_num) / MAX(e.create_role_count), 0), 4) as amount_rate, -- 付费率
                         SUM(ba1) as ba1, -- 今日付费金额
-                        SUM(ba1_num) as ba1_num, -- 今日付费人数
+                        MAX(f.ba1_num) as ba1_num, -- 今日付费人数
                         SUM(ba1_count) as ba1_count, -- 今日付费次数
-                        SUM(ba1_active_num) as ba1_active_num, -- 今日活跃人数
+                        MAX(g.ba1_active_num) as ba1_active_num, -- 今日活跃人数
                         SUM(ba2) as ba2, -- 昨日付费金额
-                        SUM(ba2_num) as ba2_num, -- 昨日付费人数
+                        MAX(f.ba2_num) as ba2_num, -- 昨日付费人数
                         SUM(ba2_count) as ba2_count, -- 昨日付费次数
-                        SUM(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
+                        MAX(g.ba2_active_num) as ba2_active_num, -- 昨日活跃人数
                         SUM(ba3) as ba3, -- 前天付费金额
-                        SUM(ba3_num) as ba3_num, -- 前天付费人数
+                        MAX(f.ba3_num) as ba3_num, -- 前天付费人数
                         SUM(ba3_count) as ba3_count, -- 前天付费次数
-                        SUM(ba3_active_num) as ba3_active_num -- 前天活跃人数
+                        MAX(g.ba3_active_num) as ba3_active_num -- 前天活跃人数
                     FROM (
                     	SELECT
                     		-- 子查询,查询每个超父游戏-原始区服维度的信息
@@ -2328,23 +2618,13 @@ public class RoleManageServiceImpl implements IRoleManageService {
                     		MAX(merge_time) as merge_time , -- 合服时间
                     		MAX(sum_server_count) as sum_server_count, -- 合服次数
                     		SUM(server_combat_num) as server_combat_num, -- 区服战力
-                    	    SUM(new_user_count) as new_user_count, -- 新用户人数
-                    	    SUM(create_role_count) as create_role_count, -- 创角人数
-                    	    SUM(role_count) as role_count, -- 角色数量
-                    	    SUM(total_num) as total_num, -- 总付费人数
                     	    SUM(total_amount) as total_amount, -- 总付费金额
                     	    SUM(ba1) as ba1, -- 今日付费金额
-                    	    SUM(ba1_num) as ba1_num, -- 今日付费人数
                     	    SUM(ba1_count) as ba1_count, -- 今日付费次数
-                    	    SUM(ba1_active_num) as ba1_active_num, -- 今日活跃人数
                     	    SUM(ba2) as ba2, -- 昨日付费金额
-                    	    SUM(ba2_num) as ba2_num, -- 昨日付费人数
                     	    SUM(ba2_count) as ba2_count, -- 昨日付费次数
-                    	    SUM(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
                     	    SUM(ba3) as ba3, -- 前天付费金额
-                    	    SUM(ba3_num) as ba3_num, -- 前天付费人数
-                    	    SUM(ba3_count) as ba3_count, -- 前天付费次数
-                    	    SUM(ba3_active_num) as ba3_active_num -- 前天活跃人数
+                    	    SUM(ba3_count) as ba3_count -- 前天付费次数
                     	FROM (
                     		SELECT
                     			-- 子查询,查询每个父游戏-区服维度的信息
@@ -2360,23 +2640,13 @@ public class RoleManageServiceImpl implements IRoleManageService {
                     			MAX(merge_time) as merge_time , -- 合服时间
                     			MAX(sum_server_count) as sum_server_count, -- 合服次数
                     			SUM(server_combat_num) as server_combat_num, -- 区服战力
-                    		    SUM(new_user_count) as new_user_count, -- 新用户人数
-                    		    SUM(create_role_count) as create_role_count, -- 创角人数
-                    		    SUM(role_count) as role_count, -- 角色数量
-                    		    SUM(total_num) as total_num, -- 总付费人数
                     		    SUM(total_amount) as total_amount, -- 总付费金额
                     		    SUM(ba1) as ba1, -- 今日付费金额
-                    		    SUM(ba1_num) as ba1_num, -- 今日付费人数
                     		    SUM(ba1_count) as ba1_count, -- 今日付费次数
-                    		    SUM(ba1_active_num) as ba1_active_num, -- 今日活跃人数
                     		    SUM(ba2) as ba2, -- 昨日付费金额
-                    		    SUM(ba2_num) as ba2_num, -- 昨日付费人数
                     		    SUM(ba2_count) as ba2_count, -- 昨日付费次数
-                    		    SUM(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
                     		    SUM(ba3) as ba3, -- 前天付费金额
-                    		    SUM(ba3_num) as ba3_num, -- 前天付费人数
-                    		    SUM(ba3_count) as ba3_count, -- 前天付费次数
-                    		    SUM(ba3_active_num) as ba3_active_num -- 前天活跃人数
+                    		    SUM(ba3_count) as ba3_count -- 前天付费次数
                     		FROM (
                     			-- 子查询,查询每个子游戏-原始区服维度的信息
                     			SELECT
@@ -2394,23 +2664,13 @@ public class RoleManageServiceImpl implements IRoleManageService {
                     				MAX(merge_time) as merge_time , -- 合服时间
                     				MAX(sum_server_count) as sum_server_count, -- 合服次数
                     				MAX(server_combat_num) as server_combat_num, -- 区服战力
-                    				MAX(new_user_count) as new_user_count, -- 新用户人数
-                    				MAX(create_role_count) as create_role_count, -- 创角人数
-                    				MAX(role_count) as role_count, -- 角色数量
-                    				MAX(total_num) as total_num, -- 总付费人数
                     				MAX(total_amount) as total_amount, -- 总付费金额
                     				MAX(ba1) as ba1, -- 今日付费金额
-                    				MAX(ba1_num) as ba1_num, -- 今日付费人数
                     				MAX(ba1_count) as ba1_count, -- 今日付费次数
-                    				MAX(ba1_active_num) as ba1_active_num, -- 今日活跃人数
                     				MAX(ba2) as ba2, -- 昨日付费金额
-                    				MAX(ba2_num) as ba2_num, -- 昨日付费人数
                     				MAX(ba2_count) as ba2_count, -- 昨日付费次数
-                    				MAX(ba2_active_num) as ba2_active_num, -- 昨日活跃人数
                     				MAX(ba3) as ba3, -- 前天付费金额
-                    				MAX(ba3_num) as ba3_num, -- 前天付费人数
-                    				MAX(ba3_count) as ba3_count, -- 前天付费次数
-                    				MAX(ba3_active_num) as ba3_active_num -- 前天活跃人数
+                    				MAX(ba3_count) as ba3_count -- 前天付费次数
                     			FROM game_ads.ads_role_combat_num_ranking
                     			GROUP BY game_id ,parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
                     		) a GROUP BY parent_game_id ,super_game_id ,server_id ,boss_server_id ,source_system
@@ -2442,12 +2702,129 @@ public class RoleManageServiceImpl implements IRoleManageService {
                     ) b ON a.source_system = b.b_source_system AND a.super_game_id = b.b_game_id AND a.boss_server_id = b.b_server_id
                     LEFT JOIN (
                     	SELECT
+                    		-- 超父-合服维度
                     		source_system as c_source_system,
+                    		super_game_id as c_super_game_id,
+                    		boss_server_id as c_boss_server_id,
+                    		COUNT(DISTINCT role_id) as role_count -- 角色数量
+                    	FROM game_ads.ads_role_combat_num_ranking
+                    	GROUP BY super_game_id, source_system, boss_server_id
+                    ) c on a.source_system = c.c_source_system AND a.super_game_id = c.c_super_game_id AND a.boss_server_id = c.c_boss_server_id
+                    LEFT JOIN (
+                    	SELECT
+                    		-- 超父-合服维度
+                    		a.source_system as d_source_system,
+                    		a.super_game_id as d_super_game_id,
+                    		b.boss_server_id as d_boss_server_id,
+                    		COUNT(a.association_user_id) as new_user_count -- 新用户人数
+                    	FROM (
+                    		SELECT
+                    			a.source_system ,
+                    			b.id,
+                    			a.game_id ,
+                    			a.server_id,
+                    			a.role_id ,
+                    			a.role_name ,
+                    			b.association_user_id ,
+                    			a.create_time ,
+                    			IFNULL(c.super_game_id , a.game_id) as super_game_id,
+                    			ROW_NUMBER()over(partition by b.association_user_id , a.source_system order by a.create_time asc, a.user_id asc) as num
+                    		FROM dm_game_order.t_game_user_role a
+                    		LEFT JOIN dm_game_order.t_game_user b on a.source_system = b.source_system AND a.user_id = b.id
+                    		LEFT JOIN dm_game_order.t_game c on a.source_system = c.source_system AND a.game_id = c.id
+                    	) a
+                    	LEFT JOIN (
+                    		SELECT
+                    			source_system,
+                    			server_id,
+                    			boss_server_id,
+                    			super_game_id
+                    		FROM game_ads.ads_role_combat_num_ranking
+                    		GROUP BY source_system, super_game_id, server_id, boss_server_id
+                    	) b on a.source_system = b.source_system AND a.server_id = b.server_id AND a.super_game_id = b.super_game_id
+                    	WHERE num = 1
+                    	GROUP BY a.super_game_id, b.boss_server_id, a.source_system
+                    ) d on a.source_system = d.d_source_system AND a.super_game_id = d.d_super_game_id AND a.boss_server_id = d.d_boss_server_id
+                    LEFT JOIN (
+                    	SELECT
+                    		-- 超父-合服维度
+                    		source_system as e_source_system,
+                    		super_game_id as e_super_game_id,
+                    		boss_server_id as e_boss_server_id,
+                    		COUNT(DISTINCT user_id) as create_role_count -- 创角人数
+                    	FROM game_ads.ads_role_combat_num_ranking
+                    	GROUP BY super_game_id, source_system, boss_server_id
+                    ) e on a.source_system = e.e_source_system AND a.super_game_id = e.e_super_game_id AND a.boss_server_id = e.e_boss_server_id
+                    LEFT JOIN (
+                    	SELECT
+                    		-- 超父-合服维度
+                    		a.source_system as f_source_system,
+                    		c.super_game_id as f_super_game_id,
+                    		d.boss_server_id as f_boss_server_id,
+                    		count(DISTINCT IF(Date(NOW()) = day,user_id,NULL)) as ba1_num, -- 今日充值人数
+                    		count(DISTINCT IF(date_add(Date(NOW()),-1)=day,user_id,NULL)) as ba2_num, -- 昨日充值人数
+                    		count(DISTINCT IF(date_add(Date(NOW()),-2)=day,user_id,NULL)) as ba3_num, -- 前天充值人数
+                    		count(DISTINCT user_id) as total_num -- 总充值人数
+                    	FROM dm_game_order.t_game_server a
+                    	LEFT JOIN game_dw.dw_order_day_amount b
+                    	on a.source_system = b.source_system and a.server_id =b.server_id and a.game_id =b.game_id
+                    	LEFT JOIN (
+                    		SELECT
+                    			source_system ,
+                    			id,
+                    			IFNULL(parent_id, id) as parent_id,
+                    			IFNULL(super_game_id, id) as super_game_id
+                    		FROM dm_game_order.t_game
+                    	) c on a.source_system = c.source_system AND a.game_id = c.id
+                    	LEFT JOIN (
+                    		SELECT
+                    			source_system,
+                    			server_id,
+                    			boss_server_id,
+                    			super_game_id
+                    		FROM game_ads.ads_role_combat_num_ranking
+                    		GROUP BY source_system, super_game_id, server_id, boss_server_id
+                    	) d on a.source_system = d.source_system AND a.server_id = d.server_id AND c.super_game_id = d.super_game_id
+                    	group by a.source_system ,a.server_id ,d.boss_server_id, c.super_game_id
+                    ) f on a.source_system = f.f_source_system AND a.super_game_id = f.f_super_game_id AND a.boss_server_id = f.f_boss_server_id
+                    LEFT JOIN (
+                    	select
+                    		-- 超父-合服维度
+                    		a.source_system as g_source_system,
+                    		d.boss_server_id as g_boss_server_id,
+                    		c.super_game_id as g_super_game_id,
+                    		count(distinct IF(Date(NOW()) = dt,user_id,NULL)) as ba1_active_num, -- 今日活跃人数
+                    		count(distinct IF(date_add(Date(NOW()),-1)=dt,user_id,NULL)) as ba2_active_num, -- 昨日活跃人数
+                    		count(distinct IF(date_add(Date(NOW()),-2)=dt,user_id,NULL)) as ba3_active_num -- 前日活跃人数
+                    	from dm_game_order.t_game_server a
+                    	left join game_dw.dw_active_log b on a.source_system = b.source_system and a.server_id = b.server_id and a.game_id = b.game_id
+                    	LEFT JOIN (
+                    		SELECT
+                    			source_system ,
+                    			id,
+                    			IFNULL(parent_id, id) as parent_id,
+                    			IFNULL(super_game_id, id) as super_game_id
+                    		FROM dm_game_order.t_game
+                    	) c on a.source_system = c.source_system AND a.game_id = c.id
+                    	LEFT JOIN (
+                    		SELECT
+                    			source_system,
+                    			server_id,
+                    			boss_server_id,
+                    			super_game_id
+                    		FROM game_ads.ads_role_combat_num_ranking
+                    		GROUP BY source_system, super_game_id, server_id, boss_server_id
+                    	) d on a.source_system = d.source_system AND a.server_id = d.server_id AND c.super_game_id = d.super_game_id
+                    	group by a.source_system ,a.server_id ,d.boss_server_id, c.super_game_id
+                    ) g on a.source_system = g.g_source_system AND a.super_game_id = g.g_super_game_id AND a.boss_server_id = g.g_boss_server_id
+                    LEFT JOIN (
+                    	SELECT
+                    		source_system as h_source_system,
                     		game_id,
                     		server_id,
-                    		is_merge
+                    		is_merge -- 是否参与过合服
                     	FROM dm_game_order.t_game_server_merge
-                    ) c on a.source_system = c.c_source_system AND a.boss_server_id = c.server_id AND a.super_game_id = c.game_id
+                    ) h on a.source_system = h.h_source_system AND a.boss_server_id = h.server_id AND a.super_game_id = h.game_id
                 """ + cri +
                 """
                 ) a