Преглед изворни кода

修改内容:战力排行榜

lth пре 1 година
родитељ
комит
ce2eaefd79

+ 289 - 279
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/RoleManageServiceImpl.java

@@ -2393,6 +2393,9 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 		TIMESTAMPDIFF(DAY, DATE(MIN(merge_time)), DATE_ADD(Date(NOW()),1)) start_day, -- 开服天数
                 		MAX(sum_server_count) as sum_server_count, -- 合服次数
                 		IFNULL(MAX(h.is_merge), 0) as is_merge, -- 是否参与过合服
+                		IFNULL(MIN(b.min_server_start_time), MIN(merge_time)) as min_server_start_time, -- 最小原始子服开服时间
+                  	    IFNULL(TIMESTAMPDIFF(DAY, DATE(MIN(b.min_server_start_time)), DATE_ADD(Date(NOW()),1)),
+                  	    	TIMESTAMPDIFF(DAY, DATE(MIN(merge_time)), DATE_ADD(Date(NOW()),1))) as min_server_start_days, -- 最小原始子服开服距今天数
                 		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列表
@@ -2429,7 +2432,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 			MAX(server_name) as server_name, -- 区服名
                 			boss_server_id, -- 合服ID
                 			MAX(boss_server_name) as boss_server_name, -- 合服名
-                			MAX(merge_time) as merge_time , -- 合服时间
+                			MIN(merge_time) as merge_time , -- 合服时间
                 			MAX(sum_server_count) as sum_server_count, -- 合服次数
                 			SUM(server_combat_num) as server_combat_num, -- 区服战力
                 		    SUM(total_amount) as total_amount, -- 总付费金额
@@ -2501,7 +2504,8 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 			MAX(a.son_server_ids) as son_server_ids , -- 合服子服ID列表
                 			MAX(d.son_server_ids_name) as son_server_ids_name , -- 合服子服ID列表
                 			GROUP_CONCAT(a.source_server_ids, ',') as source_server_ids, -- 原始子服ID列表
-                			GROUP_CONCAT(b.server_name , ',') as source_server_ids_name -- 原始子服名
+                			GROUP_CONCAT(b.server_name , ',') as source_server_ids_name, -- 原始子服名
+                			MIN(e.start_time) as min_server_start_time -- 最小原始子服开服时间
                 		FROM dm_game_order.t_game_server_merge a
                 		LEFT JOIN dm_game_order.t_game_server_merge b on a.source_system = b.source_system AND a.game_id = b.game_id AND a.source_server_ids = b.server_id
                 		LEFT JOIN (
@@ -2531,6 +2535,7 @@ public class RoleManageServiceImpl implements IRoleManageService {
                 	 		) b on a.source_system = b.source_system AND a.game_id = b.game_id AND a.son_server_ids = b.server_id
                 	 		GROUP BY a.source_system , a.game_id, a.server_id
                 	 	) d on a.source_system = d.source_system AND a.game_id = d.game_id AND a.server_id = d.server_id
+                		LEFT JOIN dm_game_order.t_game_server_merge e on a.source_system = e.source_system AND a.source_server_ids = e.server_id AND a.game_id = e.game_id
                 		group by a.server_id , a.source_system , a.game_id
                 	) 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 (
@@ -2678,283 +2683,288 @@ public class RoleManageServiceImpl implements IRoleManageService {
                     FROM
                     (
                     	SELECT
-                    		-- 查询每个超父游戏-合服维度的信息
-                    		source_system,
-                    		super_game_id , -- 超父游戏ID
-                    		MAX(super_game_name) as super_game_name , -- 超父游戏名
-                    		boss_server_id as server_id, -- 合服ID
-                    		IFNULL(MAX(h.server_name), MAX(a.boss_server_name)) as server_name, -- 合服名
-                    		MIN(merge_time) as dt, -- 合服时间
-                    		TIMESTAMPDIFF(DAY, DATE(MIN(merge_time)), DATE_ADD(Date(NOW()),1)) start_day, -- 开服天数
-                    		MAX(sum_server_count) as sum_server_count, -- 合服次数
-                    		IFNULL(MAX(h.is_merge), 0) 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(son_server_ids_name) as son_server_ids_name, -- 合服ID列表
-                    	    MAX(source_server_ids) as source_server_ids, -- 原始子服ID列表
-                    	    MAX(source_server_ids_name) as source_server_ids_name, -- 原始子服名列表
-                    		MAX(server_combat_num) as server_combat_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, -- 总付费人数
-                    	    MAX(total_amount) as total_amount, -- 总付费金额
-                    	    ROUND(IF(MAX(f.total_num) > 0, MAX(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, -- 付费率
-                    	    MAX(ba1) as ba1, -- 今日付费金额
-                    	    MAX(f.ba1_num) as ba1_num, -- 今日付费人数
-                    	    MAX(ba1_count) as ba1_count, -- 今日付费次数
-                    	    MAX(g.ba1_active_num) as ba1_active_num, -- 今日活跃人数
-                    	    MAX(ba2) as ba2, -- 昨日付费金额
-                    	    MAX(f.ba2_num) as ba2_num, -- 昨日付费人数
-                    	    MAX(ba2_count) as ba2_count, -- 昨日付费次数
-                    	    MAX(g.ba2_active_num) as ba2_active_num, -- 昨日活跃人数
-                    	    MAX(ba3) as ba3, -- 前天付费金额
-                    	    MAX(f.ba3_num) as ba3_num, -- 前天付费人数
-                    	    MAX(ba3_count) as ba3_count, -- 前天付费次数
-                    	    MAX(g.ba3_active_num) as ba3_active_num -- 前天活跃人数
-                    	FROM (
-                    		SELECT
-                    			-- 子查询,查询每个超父游戏-原始区服维度的信息
-                    			source_system,
-                    			super_game_id , -- 超父游戏ID
-                    			MAX(super_game_name) as super_game_name , -- 超父游戏名
-                    			-- server_id, -- 区服ID
-                    			MAX(server_name) as server_name, -- 区服名
-                    			boss_server_id, -- 合服ID
-                    			MAX(boss_server_name) as boss_server_name, -- 合服名
-                    			MIN(merge_time) as merge_time , -- 合服时间
-                    			MAX(sum_server_count) as sum_server_count, -- 合服次数
-                    			SUM(server_combat_num) as server_combat_num, -- 区服战力
-                    		    SUM(total_amount) as total_amount, -- 总付费金额
-                    		    SUM(ba1) as ba1, -- 今日付费金额
-                    		    SUM(ba1_count) as ba1_count, -- 今日付费次数
-                    		    SUM(ba2) as ba2, -- 昨日付费金额
-                    		    SUM(ba2_count) as ba2_count, -- 昨日付费次数
-                    		    SUM(ba3) as ba3, -- 前天付费金额
-                    		    SUM(ba3_count) as ba3_count -- 前天付费次数
-                    		FROM (
-                    			SELECT
-                    				-- 子查询,查询每个父游戏-区服维度的信息
-                    				source_system,
-                    				parent_game_id, -- 父游戏ID
-                    				MAX(parent_game_name) as parent_game_name, -- 父游戏名
-                    				super_game_id , -- 超父游戏ID
-                    				MAX(super_game_name) as super_game_name , -- 超父游戏名
-                    				server_id, -- 区服ID
-                    				MAX(server_name) as server_name, -- 区服名
-                    				boss_server_id, -- 合服ID
-                    				MAX(boss_server_name) as boss_server_name, -- 合服名
-                    				MIN(merge_time) as merge_time , -- 合服时间
-                    				MAX(sum_server_count) as sum_server_count, -- 合服次数
-                    				SUM(server_combat_num) as server_combat_num, -- 区服战力
-                    			    SUM(total_amount) as total_amount, -- 总付费金额
-                    			    SUM(ba1) as ba1, -- 今日付费金额
-                    			    SUM(ba1_count) as ba1_count, -- 今日付费次数
-                    			    SUM(ba2) as ba2, -- 昨日付费金额
-                    			    SUM(ba2_count) as ba2_count, -- 昨日付费次数
-                    			    SUM(ba3) as ba3, -- 前天付费金额
-                    			    SUM(ba3_count) as ba3_count -- 前天付费次数
-                    			FROM (
-                    				-- 子查询,查询每个子游戏-原始区服维度的信息
-                    				SELECT
-                    					source_system,
-                    					game_id, -- 子游戏ID
-                    					MAX(game_name) as game_name, -- 子游戏名
-                    					parent_game_id, -- 父游戏ID
-                    					MAX(parent_game_name) as parent_game_name, -- 父游戏名
-                    					super_game_id , -- 超父游戏ID
-                    					MAX(super_game_name) as super_game_name , -- 超父游戏名
-                    					server_id, -- 区服ID
-                    					MAX(server_name) as server_name, -- 区服名
-                    					boss_server_id, -- 合服ID
-                    					MAX(boss_server_name) as boss_server_name, -- 合服名
-                    					MIN(merge_time) as merge_time , -- 合服时间
-                    					MAX(sum_server_count) as sum_server_count, -- 合服次数
-                    					MAX(server_combat_num) as server_combat_num, -- 区服战力
-                    					MAX(total_amount) as total_amount, -- 总付费金额
-                    					MAX(ba1) as ba1, -- 今日付费金额
-                    					MAX(ba1_count) as ba1_count, -- 今日付费次数
-                    					MAX(ba2) as ba2, -- 昨日付费金额
-                    					MAX(ba2_count) as ba2_count, -- 昨日付费次数
-                    					MAX(ba3) as ba3, -- 前天付费金额
-                    					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 GROUP BY super_game_id ,boss_server_id ,source_system
-                    	) a
-                    	LEFT JOIN (
-                    		SELECT
-                    			a.source_system as b_source_system,
-                    			a.server_id as b_server_id,
-                    			a.game_id as b_game_id,
-                    			MAX(a.server_name) as server_name,
-                    			MAX(a.main_server_id) as main_server_id, -- 主服ID
-                    			MAX(c.server_name) as main_server_name, -- 主服名
-                    			MAX(a.son_server_ids) as son_server_ids , -- 合服子服ID列表
-                    			MAX(d.son_server_ids_name) as son_server_ids_name , -- 合服子服ID列表
-                    			GROUP_CONCAT(a.source_server_ids, ',') as source_server_ids, -- 原始子服ID列表
-                    			GROUP_CONCAT(b.server_name , ',') as source_server_ids_name -- 原始子服名
-                    		FROM dm_game_order.t_game_server_merge a
-                    		LEFT JOIN dm_game_order.t_game_server_merge b on a.source_system = b.source_system AND a.game_id = b.game_id AND a.source_server_ids = b.server_id
-                    		LEFT JOIN (
-                    			SELECT
-                    				source_system ,
-                    				game_id ,
-                    				server_id  ,
-                    				MAX(server_name) as server_name
-                    			FROM dm_game_order.t_game_server_merge
-                    			GROUP BY server_id ,source_system ,game_id
-                    		) c on a.source_system = c.source_system AND a.game_id = c.game_id AND a.main_server_id = c.server_id
-                    		LEFT JOIN (
-                    	 		SELECT
-                    	 			a.source_system ,
-                    	 			a.game_id,
-                    	 			a.server_id,
-                    	 			GROUP_CONCAT(b.server_name , ',') as son_server_ids_name -- 合服列表名
-                    	 		FROM dm_game_order.t_game_server_son_merge a
-                    	 		LEFT JOIN (
-                    	 			SELECT
-                    	 				source_system ,
-                    	 				game_id ,
-                    	 				server_id  ,
-                    	 				MAX(server_name) as server_name
-                    	 			FROM dm_game_order.t_game_server_merge
-                    	 			GROUP BY server_id ,source_system ,game_id
-                    	 		) b on a.source_system = b.source_system AND a.game_id = b.game_id AND a.son_server_ids = b.server_id
-                    	 		GROUP BY a.source_system , a.game_id, a.server_id
-                    	 	) d on a.source_system = d.source_system AND a.game_id = d.game_id AND a.server_id = d.server_id
-                    		group by a.server_id , a.source_system , a.game_id
-                    	) 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 ,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 ,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,
-                    			server_name,
-                    			is_merge -- 是否参与过合服
-                    		FROM dm_game_order.t_game_server_merge
-                    	) 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
-                    	GROUP BY source_system,boss_server_id,super_game_id
+                            -- 查询每个超父游戏-合服维度的信息
+                            source_system,
+                            super_game_id , -- 超父游戏ID
+                            MAX(super_game_name) as super_game_name , -- 超父游戏名
+                            boss_server_id as server_id, -- 合服ID
+                            IFNULL(MAX(h.server_name), MAX(a.boss_server_name)) as server_name, -- 合服名
+                            MIN(merge_time) as dt, -- 合服时间
+                            TIMESTAMPDIFF(DAY, DATE(MIN(merge_time)), DATE_ADD(Date(NOW()),1)) start_day, -- 开服天数
+                            MAX(sum_server_count) as sum_server_count, -- 合服次数
+                            IFNULL(MAX(h.is_merge), 0) as is_merge, -- 是否参与过合服
+                            IFNULL(MIN(b.min_server_start_time), MIN(merge_time)) as min_server_start_time, -- 最小原始子服开服时间
+                            IFNULL(TIMESTAMPDIFF(DAY, DATE(MIN(b.min_server_start_time)), DATE_ADD(Date(NOW()),1)),
+                                TIMESTAMPDIFF(DAY, DATE(MIN(merge_time)), DATE_ADD(Date(NOW()),1))) as min_server_start_days, -- 最小原始子服开服距今天数
+                            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(son_server_ids_name) as son_server_ids_name, -- 合服ID列表
+                            MAX(source_server_ids) as source_server_ids, -- 原始子服ID列表
+                            MAX(source_server_ids_name) as source_server_ids_name, -- 原始子服名列表
+                            MAX(server_combat_num) as server_combat_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, -- 总付费人数
+                            MAX(total_amount) as total_amount, -- 总付费金额
+                            ROUND(IF(MAX(f.total_num) > 0, MAX(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, -- 付费率
+                            MAX(ba1) as ba1, -- 今日付费金额
+                            MAX(f.ba1_num) as ba1_num, -- 今日付费人数
+                            MAX(ba1_count) as ba1_count, -- 今日付费次数
+                            MAX(g.ba1_active_num) as ba1_active_num, -- 今日活跃人数
+                            MAX(ba2) as ba2, -- 昨日付费金额
+                            MAX(f.ba2_num) as ba2_num, -- 昨日付费人数
+                            MAX(ba2_count) as ba2_count, -- 昨日付费次数
+                            MAX(g.ba2_active_num) as ba2_active_num, -- 昨日活跃人数
+                            MAX(ba3) as ba3, -- 前天付费金额
+                            MAX(f.ba3_num) as ba3_num, -- 前天付费人数
+                            MAX(ba3_count) as ba3_count, -- 前天付费次数
+                            MAX(g.ba3_active_num) as ba3_active_num -- 前天活跃人数
+                        FROM (
+                            SELECT
+                                -- 子查询,查询每个超父游戏-原始区服维度的信息
+                                source_system,
+                                super_game_id , -- 超父游戏ID
+                                MAX(super_game_name) as super_game_name , -- 超父游戏名
+                                -- server_id, -- 区服ID
+                                MAX(server_name) as server_name, -- 区服名
+                                boss_server_id, -- 合服ID
+                                MAX(boss_server_name) as boss_server_name, -- 合服名
+                                MIN(merge_time) as merge_time , -- 合服时间
+                                MAX(sum_server_count) as sum_server_count, -- 合服次数
+                                SUM(server_combat_num) as server_combat_num, -- 区服战力
+                                SUM(total_amount) as total_amount, -- 总付费金额
+                                SUM(ba1) as ba1, -- 今日付费金额
+                                SUM(ba1_count) as ba1_count, -- 今日付费次数
+                                SUM(ba2) as ba2, -- 昨日付费金额
+                                SUM(ba2_count) as ba2_count, -- 昨日付费次数
+                                SUM(ba3) as ba3, -- 前天付费金额
+                                SUM(ba3_count) as ba3_count -- 前天付费次数
+                            FROM (
+                                SELECT
+                                    -- 子查询,查询每个父游戏-区服维度的信息
+                                    source_system,
+                                    parent_game_id, -- 父游戏ID
+                                    MAX(parent_game_name) as parent_game_name, -- 父游戏名
+                                    super_game_id , -- 超父游戏ID
+                                    MAX(super_game_name) as super_game_name , -- 超父游戏名
+                                    server_id, -- 区服ID
+                                    MAX(server_name) as server_name, -- 区服名
+                                    boss_server_id, -- 合服ID
+                                    MAX(boss_server_name) as boss_server_name, -- 合服名
+                                    MIN(merge_time) as merge_time , -- 合服时间
+                                    MAX(sum_server_count) as sum_server_count, -- 合服次数
+                                    SUM(server_combat_num) as server_combat_num, -- 区服战力
+                                    SUM(total_amount) as total_amount, -- 总付费金额
+                                    SUM(ba1) as ba1, -- 今日付费金额
+                                    SUM(ba1_count) as ba1_count, -- 今日付费次数
+                                    SUM(ba2) as ba2, -- 昨日付费金额
+                                    SUM(ba2_count) as ba2_count, -- 昨日付费次数
+                                    SUM(ba3) as ba3, -- 前天付费金额
+                                    SUM(ba3_count) as ba3_count -- 前天付费次数
+                                FROM (
+                                    -- 子查询,查询每个子游戏-原始区服维度的信息
+                                    SELECT
+                                        source_system,
+                                        game_id, -- 子游戏ID
+                                        MAX(game_name) as game_name, -- 子游戏名
+                                        parent_game_id, -- 父游戏ID
+                                        MAX(parent_game_name) as parent_game_name, -- 父游戏名
+                                        super_game_id , -- 超父游戏ID
+                                        MAX(super_game_name) as super_game_name , -- 超父游戏名
+                                        server_id, -- 区服ID
+                                        MAX(server_name) as server_name, -- 区服名
+                                        boss_server_id, -- 合服ID
+                                        MAX(boss_server_name) as boss_server_name, -- 合服名
+                                        MIN(merge_time) as merge_time , -- 合服时间
+                                        MAX(sum_server_count) as sum_server_count, -- 合服次数
+                                        MAX(server_combat_num) as server_combat_num, -- 区服战力
+                                        MAX(total_amount) as total_amount, -- 总付费金额
+                                        MAX(ba1) as ba1, -- 今日付费金额
+                                        MAX(ba1_count) as ba1_count, -- 今日付费次数
+                                        MAX(ba2) as ba2, -- 昨日付费金额
+                                        MAX(ba2_count) as ba2_count, -- 昨日付费次数
+                                        MAX(ba3) as ba3, -- 前天付费金额
+                                        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 GROUP BY super_game_id ,boss_server_id ,source_system
+                        ) a
+                        LEFT JOIN (
+                            SELECT
+                                a.source_system as b_source_system,
+                                a.server_id as b_server_id,
+                                a.game_id as b_game_id,
+                                MAX(a.server_name) as server_name,
+                                MAX(a.main_server_id) as main_server_id, -- 主服ID
+                                MAX(c.server_name) as main_server_name, -- 主服名
+                                MAX(a.son_server_ids) as son_server_ids , -- 合服子服ID列表
+                                MAX(d.son_server_ids_name) as son_server_ids_name , -- 合服子服ID列表
+                                GROUP_CONCAT(a.source_server_ids, ',') as source_server_ids, -- 原始子服ID列表
+                                GROUP_CONCAT(b.server_name , ',') as source_server_ids_name, -- 原始子服名
+                                MIN(e.start_time) as min_server_start_time -- 最小原始子服开服时间
+                            FROM dm_game_order.t_game_server_merge a
+                            LEFT JOIN dm_game_order.t_game_server_merge b on a.source_system = b.source_system AND a.game_id = b.game_id AND a.source_server_ids = b.server_id
+                            LEFT JOIN (
+                                SELECT
+                                    source_system ,
+                                    game_id ,
+                                    server_id  ,
+                                    MAX(server_name) as server_name
+                                FROM dm_game_order.t_game_server_merge
+                                GROUP BY server_id ,source_system ,game_id
+                            ) c on a.source_system = c.source_system AND a.game_id = c.game_id AND a.main_server_id = c.server_id
+                            LEFT JOIN (
+                                SELECT
+                                    a.source_system ,
+                                    a.game_id,
+                                    a.server_id,
+                                    GROUP_CONCAT(b.server_name , ',') as son_server_ids_name -- 合服列表名
+                                FROM dm_game_order.t_game_server_son_merge a
+                                LEFT JOIN (
+                                    SELECT
+                                        source_system ,
+                                        game_id ,
+                                        server_id  ,
+                                        MAX(server_name) as server_name
+                                    FROM dm_game_order.t_game_server_merge
+                                    GROUP BY server_id ,source_system ,game_id
+                                ) b on a.source_system = b.source_system AND a.game_id = b.game_id AND a.son_server_ids = b.server_id
+                                GROUP BY a.source_system , a.game_id, a.server_id
+                            ) d on a.source_system = d.source_system AND a.game_id = d.game_id AND a.server_id = d.server_id
+                            LEFT JOIN dm_game_order.t_game_server_merge e on a.source_system = e.source_system AND a.source_server_ids = e.server_id AND a.game_id = e.game_id
+                            group by a.server_id , a.source_system , a.game_id
+                        ) 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 ,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 ,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,
+                                server_name,
+                                is_merge -- 是否参与过合服
+                            FROM dm_game_order.t_game_server_merge
+                        ) 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
+                        GROUP BY source_system,boss_server_id,super_game_id
                     ) a
                 """ + cri +
                 """