|  | @@ -8,7 +8,6 @@ import com.zanxiang.game.data.serve.pojo.entity.*;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.data.serve.pojo.enums.OrderByEnum;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.data.serve.pojo.vo.*;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.data.serve.service.IGameDataService;
 | 
	
		
			
				|  |  | -import com.zanxiang.game.data.serve.service.IRoleManageService;
 | 
	
		
			
				|  |  |  import com.zanxiang.game.data.serve.utils.Page;
 | 
	
		
			
				|  |  |  import com.zanxiang.module.util.DateUtil;
 | 
	
		
			
				|  |  |  import com.zanxiang.module.util.exception.BaseException;
 | 
	
	
		
			
				|  | @@ -750,7 +749,6 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |      public Page<GameDataTotalVO> getGameDataTotal(GameDataTotalDTO dto) {
 | 
	
		
			
				|  |  |          com.github.sd4324530.jtuple.Tuple2<List<Long>, List<Long>> poerInfo = dataPowerComponent.getPowerInfo(dto.getSourceSystem());
 | 
	
		
			
				|  |  |          List<Long> gameIds = CollectionUtils.isEmpty(dto.getGameId()) ? poerInfo.second : dto.getGameId();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          if (dto.getGameDimension() == null) {
 | 
	
		
			
				|  |  |              //默认查询子游戏维度
 | 
	
		
			
				|  |  |              dto.setGameDimension(1L);
 | 
	
	
		
			
				|  | @@ -896,7 +894,6 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |      public GameDataTotalTotalVO getGameDataTotalTotal(GameDataTotalTotalDTO dto) {
 | 
	
		
			
				|  |  |          com.github.sd4324530.jtuple.Tuple2<List<Long>, List<Long>> poerInfo = dataPowerComponent.getPowerInfo(dto.getSourceSystem());
 | 
	
		
			
				|  |  |          List<Long> gameIds = CollectionUtils.isEmpty(dto.getGameId()) ? poerInfo.second : dto.getGameId();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          if (dto.getGameDimension() == null) {
 | 
	
		
			
				|  |  |              //默认查询子游戏维度
 | 
	
		
			
				|  |  |              dto.setGameDimension(1L);
 | 
	
	
		
			
				|  | @@ -2678,7 +2675,30 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                                  round(IF(SUM(buy_new_user_total_role_num) >0, SUM(cost) / SUM(buy_new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                                  round(IF(SUM(buy_reg_num) >0, SUM(buy_first_role_num) / SUM(buy_reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  |                                  round(IF(SUM(buy_reg_num) >0, SUM(buy_role_num) / SUM(buy_reg_num), 0), 4) role_num_rate,
 | 
	
		
			
				|  |  | -                                round(IF(SUM(buy_reg_num) >0, SUM(buy_new_user_total_role_num) / SUM(buy_reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                                round(IF(SUM(buy_reg_num) >0, SUM(buy_new_user_total_role_num) / SUM(buy_reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_effective_role_num) as effective_role_num,  -- 有效创角人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(buy_first_effective_role_num_rate)*100,2) AS first_effective_role_rate, -- 首日有效创角率
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(buy_new_user_total_effective_role_num_rate)*100,2) as new_user_total_effective_role_num_rate, -- 新用户累计有效创角率
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(buy_effective_role_num_rate)*100,2) as effective_role_num_rate, -- 有效创角率
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_first_effective_role_num_cost) AS first_effective_role_num_cost, -- 首日有效创角成本
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_new_user_total_effective_role_num_cost) as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_effective_role_num_cost) as effective_role_num_cost,    -- 有效创角成本
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_first_effective_role_amount_num_cost) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_new_user_total_effective_role_amount_num_cost) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(buy_first_effective_role_amount_num_rate)*100,2) as first_effective_role_amount_num_rate, -- 首日有效创角付费比
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(buy_new_user_total_effective_role_amount_num_rate)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_first_effective_role_arpu) as first_effective_role_arpu, -- 首日有效创角ARPU
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_new_user_total_effective_role_arpu) as new_user_total_effective_role_arpu -- 新用户累计有效创角ARPU
 | 
	
		
			
				|  |  |                              FROM
 | 
	
		
			
				|  |  |                                  ads_game_day
 | 
	
		
			
				|  |  |                              """;
 | 
	
	
		
			
				|  | @@ -2732,7 +2752,30 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                                  round(IF(SUM(nature_new_user_total_role_num) >0, SUM(cost) / SUM(nature_new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                                  round(IF(SUM(nature_reg_num) >0, SUM(nature_first_role_num) / SUM(nature_reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  |                                  round(IF(SUM(nature_reg_num) >0, SUM(nature_role_num) / SUM(nature_reg_num), 0), 4) role_num_rate,
 | 
	
		
			
				|  |  | -                                round(IF(SUM(nature_reg_num) >0, SUM(nature_new_user_total_role_num) / SUM(nature_reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                                round(IF(SUM(nature_reg_num) >0, SUM(nature_new_user_total_role_num) / SUM(nature_reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_effective_role_num) as effective_role_num,  -- 有效创角人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(nature_first_effective_role_num_rate)*100,2) AS first_effective_role_rate, -- 首日有效创角率
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(nature_new_user_total_effective_role_num_rate)*100,2) as new_user_total_effective_role_num_rate, -- 新用户累计有效创角率
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(nature_effective_role_num_rate)*100,2) as effective_role_num_rate, -- 有效创角率
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_first_effective_role_num_cost) AS first_effective_role_num_cost, -- 首日有效创角成本
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_new_user_total_effective_role_num_cost) as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_effective_role_num_cost) as effective_role_num_cost,    -- 有效创角成本
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_first_effective_role_amount_num_cost) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_new_user_total_effective_role_amount_num_cost) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(nature_first_effective_role_amount_num_rate)*100,2) as first_effective_role_amount_num_rate, -- 首日有效创角付费比
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(nature_new_user_total_effective_role_amount_num_rate)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_first_effective_role_arpu) as first_effective_role_arpu, -- 首日有效创角ARPU
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_new_user_total_effective_role_arpu) as new_user_total_effective_role_arpu -- 新用户累计有效创角ARPU
 | 
	
		
			
				|  |  |                              FROM
 | 
	
		
			
				|  |  |                                  ads_game_day
 | 
	
		
			
				|  |  |                              """;
 | 
	
	
		
			
				|  | @@ -2787,7 +2830,29 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                              round(IF(SUM(new_user_total_role_num) >0, SUM(cost) / SUM(new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                              round(IF(SUM(reg_num) >0, SUM(first_role_num) / SUM(reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  |                              round(IF(SUM(reg_num) >0, SUM(role_num) / SUM(reg_num), 0), 4) role_num_rate,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(reg_num) >0, SUM(new_user_total_role_num) / SUM(reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                            round(IF(SUM(reg_num) >0, SUM(new_user_total_role_num) / SUM(reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            ANY_VALUE(first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                            ANY_VALUE(new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                            ANY_VALUE(effective_role_num) as effective_role_num,  -- 有效创角人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            round(ANY_VALUE(first_effective_role_num_rate)*100,2) AS first_effective_role_rate, -- 首日有效创角率
 | 
	
		
			
				|  |  | +                            round(ANY_VALUE(new_user_total_effective_role_num_rate)*100,2) as new_user_total_effective_role_num_rate, -- 新用户累计有效创角率
 | 
	
		
			
				|  |  | +                            round(ANY_VALUE(effective_role_num_rate)*100,2) as effective_role_num_rate, -- 有效创角率
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            ANY_VALUE(first_effective_role_num_cost) AS first_effective_role_num_cost, -- 首日有效创角成本
 | 
	
		
			
				|  |  | +                            ANY_VALUE(new_user_total_effective_role_num_cost) as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本
 | 
	
		
			
				|  |  | +                            ANY_VALUE(effective_role_num_cost) as effective_role_num_cost,    -- 有效创角成本
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            ANY_VALUE(first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                            ANY_VALUE(new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                             round(ANY_VALUE(first_effective_role_amount_num_rate)*100,2) as first_effective_role_amount_num_rate, -- 首日有效创角付费比
 | 
	
		
			
				|  |  | +                             round(ANY_VALUE(new_user_total_effective_role_amount_num_rate)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比
 | 
	
		
			
				|  |  | +                             ANY_VALUE(first_effective_role_arpu) as first_effective_role_arpu, -- 首日有效创角ARPU
 | 
	
		
			
				|  |  | +                             ANY_VALUE(new_user_total_effective_role_arpu) as new_user_total_effective_role_arpu -- 新用户累计有效创角ARPU
 | 
	
		
			
				|  |  |                          FROM
 | 
	
		
			
				|  |  |                              ads_game_day
 | 
	
		
			
				|  |  |                          """;
 | 
	
	
		
			
				|  | @@ -2850,7 +2915,30 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                                  round(IF(SUM(buy_new_user_total_role_num) >0, SUM(cost) / SUM(buy_new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                                  round(IF(SUM(buy_reg_num) >0, SUM(buy_first_role_num) / SUM(buy_reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  |                                  round(IF(SUM(buy_reg_num) >0, SUM(buy_role_num) / SUM(buy_reg_num), 0), 4) role_num_rate,
 | 
	
		
			
				|  |  | -                                round(IF(SUM(buy_reg_num) >0, SUM(buy_new_user_total_role_num) / SUM(buy_reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                                round(IF(SUM(buy_reg_num) >0, SUM(buy_new_user_total_role_num) / SUM(buy_reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_effective_role_num) as effective_role_num,  -- 有效创角人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(buy_first_effective_role_num_rate)*100,2) AS first_effective_role_rate, -- 首日有效创角率
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(buy_new_user_total_effective_role_num_rate)*100,2) as new_user_total_effective_role_num_rate, -- 新用户累计有效创角率
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(buy_effective_role_num_rate)*100,2) as effective_role_num_rate, -- 有效创角率
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_first_effective_role_num_cost) AS first_effective_role_num_cost, -- 首日有效创角成本
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_new_user_total_effective_role_num_cost) as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_effective_role_num_cost) as effective_role_num_cost,    -- 有效创角成本
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_first_effective_role_amount_num_cost) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_new_user_total_effective_role_amount_num_cost) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(buy_first_effective_role_amount_num_rate)*100,2) as first_effective_role_amount_num_rate, -- 首日有效创角付费比
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(buy_new_user_total_effective_role_amount_num_rate)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_first_effective_role_arpu) as first_effective_role_arpu, -- 首日有效创角ARPU
 | 
	
		
			
				|  |  | +                                ANY_VALUE(buy_new_user_total_effective_role_arpu) as new_user_total_effective_role_arpu -- 新用户累计有效创角ARPU
 | 
	
		
			
				|  |  |                              FROM
 | 
	
		
			
				|  |  |                                  game_ads_parent.ads_game_day_parent
 | 
	
		
			
				|  |  |                              """;
 | 
	
	
		
			
				|  | @@ -2904,7 +2992,30 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                                  round(IF(SUM(nature_new_user_total_role_num) >0, SUM(cost) / SUM(nature_new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                                  round(IF(SUM(nature_reg_num) >0, SUM(nature_first_role_num) / SUM(nature_reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  |                                  round(IF(SUM(nature_reg_num) >0, SUM(nature_role_num) / SUM(nature_reg_num), 0), 4) role_num_rate,
 | 
	
		
			
				|  |  | -                                round(IF(SUM(nature_reg_num) >0, SUM(nature_new_user_total_role_num) / SUM(nature_reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                                round(IF(SUM(nature_reg_num) >0, SUM(nature_new_user_total_role_num) / SUM(nature_reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_effective_role_num) as effective_role_num,  -- 有效创角人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(nature_first_effective_role_num_rate)*100,2) AS first_effective_role_rate, -- 首日有效创角率
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(nature_new_user_total_effective_role_num_rate)*100,2) as new_user_total_effective_role_num_rate, -- 新用户累计有效创角率
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(nature_effective_role_num_rate)*100,2) as effective_role_num_rate, -- 有效创角率
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_first_effective_role_num_cost) AS first_effective_role_num_cost, -- 首日有效创角成本
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_new_user_total_effective_role_num_cost) as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_effective_role_num_cost) as effective_role_num_cost,    -- 有效创角成本
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_first_effective_role_amount_num_cost) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_new_user_total_effective_role_amount_num_cost) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(nature_first_effective_role_amount_num_rate)*100,2) as first_effective_role_amount_num_rate, -- 首日有效创角付费比
 | 
	
		
			
				|  |  | +                                round(ANY_VALUE(nature_new_user_total_effective_role_amount_num_rate)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_first_effective_role_arpu) as first_effective_role_arpu, -- 首日有效创角ARPU
 | 
	
		
			
				|  |  | +                                ANY_VALUE(nature_new_user_total_effective_role_arpu) as new_user_total_effective_role_arpu -- 新用户累计有效创角ARPU
 | 
	
		
			
				|  |  |                              FROM
 | 
	
		
			
				|  |  |                                  game_ads_parent.ads_game_day_parent
 | 
	
		
			
				|  |  |                              """;
 | 
	
	
		
			
				|  | @@ -2959,7 +3070,29 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                              round(IF(SUM(new_user_total_role_num) >0, SUM(cost) / SUM(new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                              round(IF(SUM(reg_num) >0, SUM(first_role_num) / SUM(reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  |                              round(IF(SUM(reg_num) >0, SUM(role_num) / SUM(reg_num), 0), 4) role_num_rate,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(reg_num) >0, SUM(new_user_total_role_num) / SUM(reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                            round(IF(SUM(reg_num) >0, SUM(new_user_total_role_num) / SUM(reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            ANY_VALUE(first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                            ANY_VALUE(new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                            ANY_VALUE(effective_role_num) as effective_role_num,  -- 有效创角人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            round(ANY_VALUE(first_effective_role_num_rate)*100,2) AS first_effective_role_rate, -- 首日有效创角率
 | 
	
		
			
				|  |  | +                            round(ANY_VALUE(new_user_total_effective_role_num_rate)*100,2) as new_user_total_effective_role_num_rate, -- 新用户累计有效创角率
 | 
	
		
			
				|  |  | +                            round(ANY_VALUE(effective_role_num_rate)*100,2) as effective_role_num_rate, -- 有效创角率
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            ANY_VALUE(first_effective_role_num_cost) AS first_effective_role_num_cost, -- 首日有效创角成本
 | 
	
		
			
				|  |  | +                            ANY_VALUE(new_user_total_effective_role_num_cost) as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本
 | 
	
		
			
				|  |  | +                            ANY_VALUE(effective_role_num_cost) as effective_role_num_cost,    -- 有效创角成本
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            ANY_VALUE(first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                            ANY_VALUE(new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                             round(ANY_VALUE(first_effective_role_amount_num_rate)*100,2) as first_effective_role_amount_num_rate, -- 首日有效创角付费比
 | 
	
		
			
				|  |  | +                             round(ANY_VALUE(new_user_total_effective_role_amount_num_rate)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比
 | 
	
		
			
				|  |  | +                             ANY_VALUE(first_effective_role_arpu) as first_effective_role_arpu, -- 首日有效创角ARPU
 | 
	
		
			
				|  |  | +                             ANY_VALUE(new_user_total_effective_role_arpu) as new_user_total_effective_role_arpu -- 新用户累计有效创角ARPU
 | 
	
		
			
				|  |  |                          FROM
 | 
	
		
			
				|  |  |                              game_ads_parent.ads_game_day_parent
 | 
	
		
			
				|  |  |                          """;
 | 
	
	
		
			
				|  | @@ -3395,7 +3528,31 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                                  round(IF(SUM(buy_new_user_total_role_num) >0, SUM(cost) / SUM(buy_new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                                  round(IF(SUM(buy_reg_num) >0, SUM(buy_first_role_num) / SUM(buy_reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  |                                  round(IF(SUM(buy_reg_num) >0, SUM(buy_role_num) / SUM(buy_reg_num), 0), 4) role_num_rate,
 | 
	
		
			
				|  |  | -                                round(IF(SUM(buy_reg_num) >0, SUM(buy_new_user_total_role_num) / SUM(buy_reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                                round(IF(SUM(buy_reg_num) >0, SUM(buy_new_user_total_role_num) / SUM(buy_reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                sum(buy_first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                                sum(buy_new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                                SUM(buy_effective_role_num) as effective_role_num, -- 有效创角人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ROUND(IFNULL(SUM(buy_first_effective_role_num)/sum(buy_first_role_num),0)*100,2) as first_effective_role_rate,   -- 首日有效创角率 = 首日有效创角人数/首日创角人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(buy_new_user_total_effective_role_num)/SUM(buy_new_user_total_role_num),0)*100,2) as new_user_total_effective_role_num_rate,         -- 新用户累计有效创角率 = 新用户累计有效创角人数/新用户累计创角人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(buy_effective_role_num)/SUM(buy_role_num),0)*100,2) as effective_role_num_rate,        -- 有效创角率 = 有效创角人数/创角人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/SUM(buy_first_effective_role_num),0),2) as first_effective_role_num_cost, -- 首日有效创角成本= 消耗/首日有效创角人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/SUM(buy_new_user_total_effective_role_num),0),2)  as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本 = 消耗/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/sum(buy_effective_role_num),0),2) as effective_role_num_cost, -- 有效创角成本 = 消耗/有效创角人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                SUM(buy_first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                                sum(buy_new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/sum(buy_first_effective_role_amount_num),0),2) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本=消耗/首日有效创角付费人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/SUM(buy_new_user_total_effective_role_amount_num),0),2) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本=消耗/新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(buy_first_effective_role_amount_num)/SUM(buy_first_new_user_amount_count),0)*100,2) as first_effective_role_amount_num_rate,  -- 首日有效创角付费比=首日有效创角付费人数/首日新用户充值人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(buy_new_user_total_effective_role_amount_num)/SUM(buy_new_user_total_amount_count),0)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比=新用户累计有效创角付费人数/新用户累计充值人数
 | 
	
		
			
				|  |  | +                                ROUND(IFNULL(SUM(buy_new_user_total_amount)/SUM(buy_new_user_total_effective_role_num),0),2) as first_effective_role_arpu,    -- 新用户累计有效创角ARPU=新用户累计充值金额/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                                ROUND(IFNULL(SUM(buy_first_new_user_amount)/SUM(buy_first_effective_role_num),0),2) as new_user_total_effective_role_arpu -- 首日有效创角ARPU=首日新用户充值金额/首日有效创角人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  |                              FROM game_ads.ads_game_day as a
 | 
	
		
			
				|  |  |                                  LEFT JOIN game_dw.dw_game_amount_day_buy
 | 
	
		
			
				|  |  |                                  b on a.source_system = b.source_system
 | 
	
	
		
			
				|  | @@ -3447,7 +3604,30 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                                  round(IF(SUM(nature_new_user_total_role_num) >0, SUM(cost) / SUM(nature_new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                                  round(IF(SUM(nature_reg_num) >0, SUM(nature_first_role_num) / SUM(nature_reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  |                                  round(IF(SUM(nature_reg_num) >0, SUM(nature_role_num) / SUM(nature_reg_num), 0), 4) role_num_rate,
 | 
	
		
			
				|  |  | -                                round(IF(SUM(nature_reg_num) >0, SUM(nature_new_user_total_role_num) / SUM(nature_reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                                round(IF(SUM(nature_reg_num) >0, SUM(nature_new_user_total_role_num) / SUM(nature_reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                sum(nature_first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                                sum(nature_new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                                SUM(nature_effective_role_num) as effective_role_num, -- 有效创角人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ROUND(IFNULL(SUM(nature_first_effective_role_num)/sum(nature_first_role_num),0)*100,2) as first_effective_role_rate,   -- 首日有效创角率 = 首日有效创角人数/首日创角人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(nature_new_user_total_effective_role_num)/SUM(nature_new_user_total_role_num),0)*100,2) as new_user_total_effective_role_num_rate,         -- 新用户累计有效创角率 = 新用户累计有效创角人数/新用户累计创角人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(nature_effective_role_num)/SUM(nature_role_num),0)*100,2) as effective_role_num_rate,        -- 有效创角率 = 有效创角人数/创角人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/SUM(nature_first_effective_role_num),0),2) as first_effective_role_num_cost, -- 首日有效创角成本= 消耗/首日有效创角人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/SUM(nature_new_user_total_effective_role_num),0),2)  as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本 = 消耗/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/sum(nature_effective_role_num),0),2) as effective_role_num_cost, -- 有效创角成本 = 消耗/有效创角人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                SUM(nature_first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                                sum(nature_new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/sum(nature_first_effective_role_amount_num),0),2) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本=消耗/首日有效创角付费人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/SUM(nature_new_user_total_effective_role_amount_num),0),2) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本=消耗/新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(nature_first_effective_role_amount_num)/SUM(nature_first_new_user_amount_count),0)*100,2) as first_effective_role_amount_num_rate,  -- 首日有效创角付费比=首日有效创角付费人数/首日新用户充值人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(nature_new_user_total_effective_role_amount_num)/SUM(nature_new_user_total_amount_count),0)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比=新用户累计有效创角付费人数/新用户累计充值人数
 | 
	
		
			
				|  |  | +                                ROUND(IFNULL(SUM(nature_new_user_total_amount)/SUM(nature_new_user_total_effective_role_num),0),2) as first_effective_role_arpu,    -- 新用户累计有效创角ARPU=新用户累计充值金额/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                                ROUND(IFNULL(SUM(nature_first_new_user_amount)/SUM(nature_first_effective_role_num),0),2) as new_user_total_effective_role_arpu -- 首日有效创角ARPU=首日新用户充值金额/首日有效创角人数
 | 
	
		
			
				|  |  |                              FROM game_ads.ads_game_day as a
 | 
	
		
			
				|  |  |                                  left join  game_dw.dw_game_amount_day_nature d
 | 
	
		
			
				|  |  |                                  on a.dt=d.dt and a.game_id = d.nature_game_id
 | 
	
	
		
			
				|  | @@ -3461,53 +3641,78 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                  """
 | 
	
		
			
				|  |  |                  + amountDayStr("") +
 | 
	
		
			
				|  |  |                  """
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(first_new_user_amount_count), 0) first_new_user_amount_count,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(first_new_user_amount_num), 0) first_new_user_amount_num,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(first_new_user_amount), 0) first_new_user_amount,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(old_user_count), 0) old_user_count,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(old_user_num), 0) old_user_num,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(old_user_amount), 0) old_user_amount,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(amount_count), 0) amount_count,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(amount_num), 0) amount_num,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(amount), 0) amount,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(new_user_total_amount_count), 0) new_user_total_amount_count,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(new_user_total_amount_num), 0) new_user_total_amount_num,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(new_user_total_amount), 0) new_user_total_amount,
 | 
	
		
			
				|  |  | -                            round(if(SUM(cost) > 0 , SUM(first_new_user_amount) / SUM(cost) ,0), 4) first_roi,
 | 
	
		
			
				|  |  | -                            round(if(SUM(reg_num) > 0 , SUM(first_new_user_amount_num) / SUM(reg_num) ,0), 4) first_amount_rate,
 | 
	
		
			
				|  |  | -                            round(if(SUM(reg_num) > 0, SUM(new_user_total_amount_num) / SUM(reg_num), 0) ,4) today_amount_rate,
 | 
	
		
			
				|  |  | -                            round(if(SUM(amount_num) > 0 , SUM(first_new_user_amount_num) / SUM(amount_num) ,0), 4) new_user_rate,
 | 
	
		
			
				|  |  | -                            round(if(SUM(first_new_user_amount_count) > 0, SUM(first_new_user_amount) / SUM(first_new_user_amount_count), 0), 2) first_avg_amount,
 | 
	
		
			
				|  |  | -                            round(if(SUM(new_user_total_amount_count) > 0, SUM(new_user_total_amount) / SUM(new_user_total_amount_count), 0), 2) today_avg_amount,
 | 
	
		
			
				|  |  | -                            round(if(SUM(amount_count) > 0, SUM(amount) / SUM(amount_count), 0), 2) avg_amount,
 | 
	
		
			
				|  |  | -                            round(if(SUM(new_user_total_amount_num) > 0, SUM(reg_order_user_again) / SUM(new_user_total_amount_num), 0), 4) user_again_rate,
 | 
	
		
			
				|  |  | -                            round(if(SUM(reg_num) > 0, SUM(new_user_total_amount) / SUM(reg_num), 0), 2) reg_user_arpu,
 | 
	
		
			
				|  |  | -                            round(if(SUM(first_new_user_amount_num) > 0 , SUM(first_new_user_amount) / SUM(first_new_user_amount_num), 0), 2) first_amount_arpu,
 | 
	
		
			
				|  |  | -                            round(if(SUM(new_user_total_amount_num) > 0 , SUM(new_user_total_amount) / SUM(new_user_total_amount_num), 0), 2) today_amount_arpu,
 | 
	
		
			
				|  |  | -                            round(if(SUM(amount_num) > 0, SUM(amount) / SUM(amount_num), 0), 2) amount_arpu,
 | 
	
		
			
				|  |  | -                            round(if(SUM(reg_num) > 0, SUM(cost) / SUM(reg_num), 0), 2) reg_cost,
 | 
	
		
			
				|  |  | -                            round(if(SUM(first_new_user_amount_num) > 0, SUM(cost) / SUM(first_new_user_amount_num), 0), 2) first_new_user_recharge_cost,
 | 
	
		
			
				|  |  | -                            round(if(SUM(new_user_total_amount_num) > 0, SUM(cost) / SUM(new_user_total_amount_num), 0), 2) total_recharge_cost,
 | 
	
		
			
				|  |  | -                            round(if(SUM(cost) > 0, SUM(new_user_total_amount) / SUM(cost), 0), 4) total_roi,
 | 
	
		
			
				|  |  | -                            SUM(hundred_user_num) hundred_user_num,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(hundred_user_num) > 0, SUM(cost) / SUM(hundred_user_num), 0), 2) hundred_user_num_cost,
 | 
	
		
			
				|  |  | -                            SUM(first_role_num) first_role_num,
 | 
	
		
			
				|  |  | -                            SUM(role_num) role_num,
 | 
	
		
			
				|  |  | -                            SUM(new_user_total_role_num) new_user_total_role_num,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(first_role_num) > 0, SUM(cost) / SUM(first_role_num), 0), 2) first_role_num_cost,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(role_num) > 0, SUM(cost) / SUM(role_num), 0), 2) role_num_cost,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(new_user_total_role_num) >0, SUM(cost) / SUM(new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(reg_num) >0, SUM(first_role_num) / SUM(reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(reg_num) >0, SUM(role_num) / SUM(reg_num), 0), 4) role_num_rate,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(reg_num) >0, SUM(new_user_total_role_num) / SUM(reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | -                        FROM game_ads.ads_game_day as a
 | 
	
		
			
				|  |  | -                        left join   game_dw.dw_game_amount_day
 | 
	
		
			
				|  |  | -                        b on a.dt=b.dt and a.game_id = b.game_id
 | 
	
		
			
				|  |  | -                      """;
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(first_new_user_amount_count), 0) first_new_user_amount_count,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(first_new_user_amount_num), 0) first_new_user_amount_num,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(first_new_user_amount), 0) first_new_user_amount,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(old_user_count), 0) old_user_count,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(old_user_num), 0) old_user_num,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(old_user_amount), 0) old_user_amount,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(amount_count), 0) amount_count,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(amount_num), 0) amount_num,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(amount), 0) amount,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(new_user_total_amount_count), 0) new_user_total_amount_count,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(new_user_total_amount_num), 0) new_user_total_amount_num,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(new_user_total_amount), 0) new_user_total_amount,
 | 
	
		
			
				|  |  | +                              round(if(SUM(cost) > 0 , SUM(first_new_user_amount) / SUM(cost) ,0), 4) first_roi,
 | 
	
		
			
				|  |  | +                              round(if(SUM(reg_num) > 0 , SUM(first_new_user_amount_num) / SUM(reg_num) ,0), 4) first_amount_rate,
 | 
	
		
			
				|  |  | +                              round(if(SUM(reg_num) > 0, SUM(new_user_total_amount_num) / SUM(reg_num), 0) ,4) today_amount_rate,
 | 
	
		
			
				|  |  | +                              round(if(SUM(amount_num) > 0 , SUM(first_new_user_amount_num) / SUM(amount_num) ,0), 4) new_user_rate,
 | 
	
		
			
				|  |  | +                              round(if(SUM(first_new_user_amount_count) > 0, SUM(first_new_user_amount) / SUM(first_new_user_amount_count), 0), 2) first_avg_amount,
 | 
	
		
			
				|  |  | +                              round(if(SUM(new_user_total_amount_count) > 0, SUM(new_user_total_amount) / SUM(new_user_total_amount_count), 0), 2) today_avg_amount,
 | 
	
		
			
				|  |  | +                              round(if(SUM(amount_count) > 0, SUM(amount) / SUM(amount_count), 0), 2) avg_amount,
 | 
	
		
			
				|  |  | +                              round(if(SUM(new_user_total_amount_num) > 0, SUM(reg_order_user_again) / SUM(new_user_total_amount_num), 0), 4) user_again_rate,
 | 
	
		
			
				|  |  | +                              round(if(SUM(reg_num) > 0, SUM(new_user_total_amount) / SUM(reg_num), 0), 2) reg_user_arpu,
 | 
	
		
			
				|  |  | +                              round(if(SUM(first_new_user_amount_num) > 0 , SUM(first_new_user_amount) / SUM(first_new_user_amount_num), 0), 2) first_amount_arpu,
 | 
	
		
			
				|  |  | +                              round(if(SUM(new_user_total_amount_num) > 0 , SUM(new_user_total_amount) / SUM(new_user_total_amount_num), 0), 2) today_amount_arpu,
 | 
	
		
			
				|  |  | +                              round(if(SUM(amount_num) > 0, SUM(amount) / SUM(amount_num), 0), 2) amount_arpu,
 | 
	
		
			
				|  |  | +                              round(if(SUM(reg_num) > 0, SUM(cost) / SUM(reg_num), 0), 2) reg_cost,
 | 
	
		
			
				|  |  | +                              round(if(SUM(first_new_user_amount_num) > 0, SUM(cost) / SUM(first_new_user_amount_num), 0), 2) first_new_user_recharge_cost,
 | 
	
		
			
				|  |  | +                              round(if(SUM(new_user_total_amount_num) > 0, SUM(cost) / SUM(new_user_total_amount_num), 0), 2) total_recharge_cost,
 | 
	
		
			
				|  |  | +                              round(if(SUM(cost) > 0, SUM(new_user_total_amount) / SUM(cost), 0), 4) total_roi,
 | 
	
		
			
				|  |  | +                              SUM(hundred_user_num) hundred_user_num,
 | 
	
		
			
				|  |  | +                              round(IF(SUM(hundred_user_num) > 0, SUM(cost) / SUM(hundred_user_num), 0), 2) hundred_user_num_cost,
 | 
	
		
			
				|  |  | +                              SUM(first_role_num) first_role_num,
 | 
	
		
			
				|  |  | +                              SUM(role_num) role_num,
 | 
	
		
			
				|  |  | +                              SUM(new_user_total_role_num) new_user_total_role_num,
 | 
	
		
			
				|  |  | +                              round(IF(SUM(first_role_num) > 0, SUM(cost) / SUM(first_role_num), 0), 2) first_role_num_cost,
 | 
	
		
			
				|  |  | +                              round(IF(SUM(role_num) > 0, SUM(cost) / SUM(role_num), 0), 2) role_num_cost,
 | 
	
		
			
				|  |  | +                              round(IF(SUM(new_user_total_role_num) >0, SUM(cost) / SUM(new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  | +                              round(IF(SUM(reg_num) >0, SUM(first_role_num) / SUM(reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  | +                              round(IF(SUM(reg_num) >0, SUM(role_num) / SUM(reg_num), 0), 4) role_num_rate,
 | 
	
		
			
				|  |  | +                              round(IF(SUM(reg_num) >0, SUM(new_user_total_role_num) / SUM(reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                              
 | 
	
		
			
				|  |  | +                              sum(first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                              sum(new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                              SUM(effective_role_num) as effective_role_num, -- 有效创角人数
 | 
	
		
			
				|  |  | +                          
 | 
	
		
			
				|  |  | +                              ROUND(IFNULL(SUM(first_effective_role_num)/sum(first_role_num),0)*100,2) as first_effective_role_rate,   -- 首日有效创角率 = 首日有效创角人数/首日创角人数
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(new_user_total_effective_role_num)/SUM(new_user_total_role_num),0)*100,2) as new_user_total_effective_role_num_rate,         -- 新用户累计有效创角率 = 新用户累计有效创角人数/新用户累计创角人数
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(effective_role_num)/SUM(role_num),0)*100,2) as effective_role_num_rate,        -- 有效创角率 = 有效创角人数/创角人数
 | 
	
		
			
				|  |  | +                          
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(cost)/SUM(first_effective_role_num),0),2) as first_effective_role_num_cost, -- 首日有效创角成本= 消耗/首日有效创角人数
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(cost)/SUM(new_user_total_effective_role_num),0),2)  as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本 = 消耗/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(cost)/sum(effective_role_num),0),2) as effective_role_num_cost, -- 有效创角成本 = 消耗/有效创角人数
 | 
	
		
			
				|  |  | +                          
 | 
	
		
			
				|  |  | +                              SUM(first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                              sum(new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                          
 | 
	
		
			
				|  |  | +                          
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(cost)/sum(first_effective_role_amount_num),0),2) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本=消耗/首日有效创角付费人数
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(cost)/SUM(new_user_total_effective_role_amount_num),0),2) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本=消耗/新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                          
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(first_effective_role_amount_num)/SUM(first_new_user_amount_count),0)*100,2) as first_effective_role_amount_num_rate,  -- 首日有效创角付费比=首日有效创角付费人数/首日新用户充值人数
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(new_user_total_effective_role_amount_num)/SUM(new_user_total_amount_count),0)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比=新用户累计有效创角付费人数/新用户累计充值人数
 | 
	
		
			
				|  |  | +                              ROUND(IFNULL(SUM(new_user_total_amount)/SUM(new_user_total_effective_role_num),0),2) as first_effective_role_arpu,    -- 新用户累计有效创角ARPU=新用户累计充值金额/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                              ROUND(IFNULL(SUM(first_new_user_amount)/SUM(first_effective_role_num),0),2) as new_user_total_effective_role_arpu -- 首日有效创角ARPU=首日新用户充值金额/首日有效创角人数
 | 
	
		
			
				|  |  | +                          FROM game_ads.ads_game_day as a
 | 
	
		
			
				|  |  | +                          left join   game_dw.dw_game_amount_day
 | 
	
		
			
				|  |  | +                          b on a.dt=b.dt and a.game_id = b.game_id
 | 
	
		
			
				|  |  | +                        """;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  |       * 游戏每日数据总计sql - 父游戏维度 (新)
 | 
	
		
			
				|  |  | +     *
 | 
	
		
			
				|  |  |       * @param tableType 查询类型
 | 
	
		
			
				|  |  |       * @return
 | 
	
		
			
				|  |  |       */
 | 
	
	
		
			
				|  | @@ -3558,7 +3763,31 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                                  round(IF(SUM(buy_new_user_total_role_num) >0, SUM(cost) / SUM(buy_new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                                  round(IF(SUM(buy_reg_num) >0, SUM(buy_first_role_num) / SUM(buy_reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  |                                  round(IF(SUM(buy_reg_num) >0, SUM(buy_role_num) / SUM(buy_reg_num), 0), 4) role_num_rate,
 | 
	
		
			
				|  |  | -                                round(IF(SUM(buy_reg_num) >0, SUM(buy_new_user_total_role_num) / SUM(buy_reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                                round(IF(SUM(buy_reg_num) >0, SUM(buy_new_user_total_role_num) / SUM(buy_reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                sum(buy_first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                                sum(buy_new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                                SUM(buy_effective_role_num) as effective_role_num, -- 有效创角人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ROUND(IFNULL(SUM(buy_first_effective_role_num)/sum(buy_first_role_num),0)*100,2) as first_effective_role_rate,   -- 首日有效创角率 = 首日有效创角人数/首日创角人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(buy_new_user_total_effective_role_num)/SUM(buy_new_user_total_role_num),0)*100,2) as new_user_total_effective_role_num_rate,         -- 新用户累计有效创角率 = 新用户累计有效创角人数/新用户累计创角人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(buy_effective_role_num)/SUM(buy_role_num),0)*100,2) as effective_role_num_rate,        -- 有效创角率 = 有效创角人数/创角人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/SUM(buy_first_effective_role_num),0),2) as first_effective_role_num_cost, -- 首日有效创角成本= 消耗/首日有效创角人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/SUM(buy_new_user_total_effective_role_num),0),2)  as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本 = 消耗/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/sum(buy_effective_role_num),0),2) as effective_role_num_cost, -- 有效创角成本 = 消耗/有效创角人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                SUM(buy_first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                                sum(buy_new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/sum(buy_first_effective_role_amount_num),0),2) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本=消耗/首日有效创角付费人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/SUM(buy_new_user_total_effective_role_amount_num),0),2) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本=消耗/新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(buy_first_effective_role_amount_num)/SUM(buy_first_new_user_amount_count),0)*100,2) as first_effective_role_amount_num_rate,  -- 首日有效创角付费比=首日有效创角付费人数/首日新用户充值人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(buy_new_user_total_effective_role_amount_num)/SUM(buy_new_user_total_amount_count),0)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比=新用户累计有效创角付费人数/新用户累计充值人数
 | 
	
		
			
				|  |  | +                                ROUND(IFNULL(SUM(buy_new_user_total_amount)/SUM(buy_new_user_total_effective_role_num),0),2) as first_effective_role_arpu,    -- 新用户累计有效创角ARPU=新用户累计充值金额/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                                ROUND(IFNULL(SUM(buy_first_new_user_amount)/SUM(buy_first_effective_role_num),0),2) as new_user_total_effective_role_arpu -- 首日有效创角ARPU=首日新用户充值金额/首日有效创角人数
 | 
	
		
			
				|  |  |                              FROM game_ads_parent.ads_game_day_parent as a
 | 
	
		
			
				|  |  |                              LEFT JOIN  game_dw_parent.dw_game_amount_day_buy_parent b
 | 
	
		
			
				|  |  |                              on a.source_system = b.source_system
 | 
	
	
		
			
				|  | @@ -3610,7 +3839,30 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                                  round(IF(SUM(nature_new_user_total_role_num) >0, SUM(cost) / SUM(nature_new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                                  round(IF(SUM(nature_reg_num) >0, SUM(nature_first_role_num) / SUM(nature_reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  |                                  round(IF(SUM(nature_reg_num) >0, SUM(nature_role_num) / SUM(nature_reg_num), 0), 4) role_num_rate,
 | 
	
		
			
				|  |  | -                                round(IF(SUM(nature_reg_num) >0, SUM(nature_new_user_total_role_num) / SUM(nature_reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                                round(IF(SUM(nature_reg_num) >0, SUM(nature_new_user_total_role_num) / SUM(nature_reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                sum(nature_first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                                sum(nature_new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                                SUM(nature_effective_role_num) as effective_role_num, -- 有效创角人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                ROUND(IFNULL(SUM(nature_first_effective_role_num)/sum(nature_first_role_num),0)*100,2) as first_effective_role_rate,   -- 首日有效创角率 = 首日有效创角人数/首日创角人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(nature_new_user_total_effective_role_num)/SUM(nature_new_user_total_role_num),0)*100,2) as new_user_total_effective_role_num_rate,         -- 新用户累计有效创角率 = 新用户累计有效创角人数/新用户累计创角人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(nature_effective_role_num)/SUM(nature_role_num),0)*100,2) as effective_role_num_rate,        -- 有效创角率 = 有效创角人数/创角人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/SUM(nature_first_effective_role_num),0),2) as first_effective_role_num_cost, -- 首日有效创角成本= 消耗/首日有效创角人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/SUM(nature_new_user_total_effective_role_num),0),2)  as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本 = 消耗/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/sum(nature_effective_role_num),0),2) as effective_role_num_cost, -- 有效创角成本 = 消耗/有效创角人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                SUM(nature_first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                                sum(nature_new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/sum(nature_first_effective_role_amount_num),0),2) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本=消耗/首日有效创角付费人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(cost)/SUM(nature_new_user_total_effective_role_amount_num),0),2) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本=消耗/新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(nature_first_effective_role_amount_num)/SUM(nature_first_new_user_amount_count),0)*100,2) as first_effective_role_amount_num_rate,  -- 首日有效创角付费比=首日有效创角付费人数/首日新用户充值人数
 | 
	
		
			
				|  |  | +                                round(IFNULL(SUM(nature_new_user_total_effective_role_amount_num)/SUM(nature_new_user_total_amount_count),0)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比=新用户累计有效创角付费人数/新用户累计充值人数
 | 
	
		
			
				|  |  | +                                ROUND(IFNULL(SUM(nature_new_user_total_amount)/SUM(nature_new_user_total_effective_role_num),0),2) as first_effective_role_arpu,    -- 新用户累计有效创角ARPU=新用户累计充值金额/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                                ROUND(IFNULL(SUM(nature_first_new_user_amount)/SUM(nature_first_effective_role_num),0),2) as new_user_total_effective_role_arpu -- 首日有效创角ARPU=首日新用户充值金额/首日有效创角人数
 | 
	
		
			
				|  |  |                              FROM game_ads_parent.ads_game_day_parent as a
 | 
	
		
			
				|  |  |                                  left join   game_dw_parent.dw_game_amount_day_nature_parent d
 | 
	
		
			
				|  |  |                                  on a.dt=d.dt and a.parent_game_id = d.nature_parent_game_id
 | 
	
	
		
			
				|  | @@ -3624,49 +3876,73 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                  """
 | 
	
		
			
				|  |  |                  + amountDayStr("") +
 | 
	
		
			
				|  |  |                  """
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(first_new_user_amount_count), 0) first_new_user_amount_count,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(first_new_user_amount_num), 0) first_new_user_amount_num,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(first_new_user_amount), 0) first_new_user_amount,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(old_user_count), 0) old_user_count,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(old_user_num), 0) old_user_num,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(old_user_amount), 0) old_user_amount,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(amount_count), 0) amount_count,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(amount_num), 0) amount_num,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(amount), 0) amount,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(new_user_total_amount_count), 0) new_user_total_amount_count,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(new_user_total_amount_num), 0) new_user_total_amount_num,
 | 
	
		
			
				|  |  | -                            IFNULL(SUM(new_user_total_amount), 0) new_user_total_amount,
 | 
	
		
			
				|  |  | -                            round(if(SUM(cost) > 0 , SUM(first_new_user_amount) / SUM(cost) ,0), 4) first_roi,
 | 
	
		
			
				|  |  | -                            round(if(SUM(reg_num) > 0 , SUM(first_new_user_amount_num) / SUM(reg_num) ,0), 4) first_amount_rate,
 | 
	
		
			
				|  |  | -                            round(if(SUM(reg_num) > 0, SUM(new_user_total_amount_num) / SUM(reg_num), 0) ,4) today_amount_rate,
 | 
	
		
			
				|  |  | -                            round(if(SUM(amount_num) > 0 , SUM(first_new_user_amount_num) / SUM(amount_num) ,0), 4) new_user_rate,
 | 
	
		
			
				|  |  | -                            round(if(SUM(first_new_user_amount_count) > 0, SUM(first_new_user_amount) / SUM(first_new_user_amount_count), 0), 2) first_avg_amount,
 | 
	
		
			
				|  |  | -                            round(if(SUM(new_user_total_amount_count) > 0, SUM(new_user_total_amount) / SUM(new_user_total_amount_count), 0), 2) today_avg_amount,
 | 
	
		
			
				|  |  | -                            round(if(SUM(amount_count) > 0, SUM(amount) / SUM(amount_count), 0), 2) avg_amount,
 | 
	
		
			
				|  |  | -                            round(if(SUM(new_user_total_amount_num) > 0, SUM(reg_order_user_again) / SUM(new_user_total_amount_num), 0), 4) user_again_rate,
 | 
	
		
			
				|  |  | -                            round(if(SUM(reg_num) > 0, SUM(new_user_total_amount) / SUM(reg_num), 0), 2) reg_user_arpu,
 | 
	
		
			
				|  |  | -                            round(if(SUM(first_new_user_amount_num) > 0 , SUM(first_new_user_amount) / SUM(first_new_user_amount_num), 0), 2) first_amount_arpu,
 | 
	
		
			
				|  |  | -                            round(if(SUM(new_user_total_amount_num) > 0 , SUM(new_user_total_amount) / SUM(new_user_total_amount_num), 0), 2) today_amount_arpu,
 | 
	
		
			
				|  |  | -                            round(if(SUM(amount_num) > 0, SUM(amount) / SUM(amount_num), 0), 2) amount_arpu,
 | 
	
		
			
				|  |  | -                            round(if(SUM(reg_num) > 0, SUM(cost) / SUM(reg_num), 0), 2) reg_cost,
 | 
	
		
			
				|  |  | -                            round(if(SUM(first_new_user_amount_num) > 0, SUM(cost) / SUM(first_new_user_amount_num), 0), 2) first_new_user_recharge_cost,
 | 
	
		
			
				|  |  | -                            round(if(SUM(new_user_total_amount_num) > 0, SUM(cost) / SUM(new_user_total_amount_num), 0), 2) total_recharge_cost,
 | 
	
		
			
				|  |  | -                            round(if(SUM(cost) > 0, SUM(new_user_total_amount) / SUM(cost), 0), 4) total_roi,
 | 
	
		
			
				|  |  | -                            SUM(hundred_user_num) hundred_user_num,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(hundred_user_num) > 0, SUM(cost) / SUM(hundred_user_num), 0), 2) hundred_user_num_cost,
 | 
	
		
			
				|  |  | -                            SUM(first_role_num) first_role_num,
 | 
	
		
			
				|  |  | -                            SUM(role_num) role_num,
 | 
	
		
			
				|  |  | -                            SUM(new_user_total_role_num) new_user_total_role_num,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(first_role_num) > 0, SUM(cost) / SUM(first_role_num), 0), 2) first_role_num_cost,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(role_num) > 0, SUM(cost) / SUM(role_num), 0), 2) role_num_cost,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(new_user_total_role_num) >0, SUM(cost) / SUM(new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(reg_num) >0, SUM(first_role_num) / SUM(reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(reg_num) >0, SUM(role_num) / SUM(reg_num), 0), 4) role_num_rate,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(reg_num) >0, SUM(new_user_total_role_num) / SUM(reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | -                        FROM game_ads_parent.ads_game_day_parent as a
 | 
	
		
			
				|  |  | -                        left join   game_dw_parent.dw_game_amount_day_parent as b
 | 
	
		
			
				|  |  | -                        on a.dt = b.dt and a.parent_game_id = b.parent_game_id 
 | 
	
		
			
				|  |  | -                      """;
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(first_new_user_amount_count), 0) first_new_user_amount_count,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(first_new_user_amount_num), 0) first_new_user_amount_num,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(first_new_user_amount), 0) first_new_user_amount,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(old_user_count), 0) old_user_count,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(old_user_num), 0) old_user_num,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(old_user_amount), 0) old_user_amount,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(amount_count), 0) amount_count,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(amount_num), 0) amount_num,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(amount), 0) amount,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(new_user_total_amount_count), 0) new_user_total_amount_count,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(new_user_total_amount_num), 0) new_user_total_amount_num,
 | 
	
		
			
				|  |  | +                              IFNULL(SUM(new_user_total_amount), 0) new_user_total_amount,
 | 
	
		
			
				|  |  | +                              round(if(SUM(cost) > 0 , SUM(first_new_user_amount) / SUM(cost) ,0), 4) first_roi,
 | 
	
		
			
				|  |  | +                              round(if(SUM(reg_num) > 0 , SUM(first_new_user_amount_num) / SUM(reg_num) ,0), 4) first_amount_rate,
 | 
	
		
			
				|  |  | +                              round(if(SUM(reg_num) > 0, SUM(new_user_total_amount_num) / SUM(reg_num), 0) ,4) today_amount_rate,
 | 
	
		
			
				|  |  | +                              round(if(SUM(amount_num) > 0 , SUM(first_new_user_amount_num) / SUM(amount_num) ,0), 4) new_user_rate,
 | 
	
		
			
				|  |  | +                              round(if(SUM(first_new_user_amount_count) > 0, SUM(first_new_user_amount) / SUM(first_new_user_amount_count), 0), 2) first_avg_amount,
 | 
	
		
			
				|  |  | +                              round(if(SUM(new_user_total_amount_count) > 0, SUM(new_user_total_amount) / SUM(new_user_total_amount_count), 0), 2) today_avg_amount,
 | 
	
		
			
				|  |  | +                              round(if(SUM(amount_count) > 0, SUM(amount) / SUM(amount_count), 0), 2) avg_amount,
 | 
	
		
			
				|  |  | +                              round(if(SUM(new_user_total_amount_num) > 0, SUM(reg_order_user_again) / SUM(new_user_total_amount_num), 0), 4) user_again_rate,
 | 
	
		
			
				|  |  | +                              round(if(SUM(reg_num) > 0, SUM(new_user_total_amount) / SUM(reg_num), 0), 2) reg_user_arpu,
 | 
	
		
			
				|  |  | +                              round(if(SUM(first_new_user_amount_num) > 0 , SUM(first_new_user_amount) / SUM(first_new_user_amount_num), 0), 2) first_amount_arpu,
 | 
	
		
			
				|  |  | +                              round(if(SUM(new_user_total_amount_num) > 0 , SUM(new_user_total_amount) / SUM(new_user_total_amount_num), 0), 2) today_amount_arpu,
 | 
	
		
			
				|  |  | +                              round(if(SUM(amount_num) > 0, SUM(amount) / SUM(amount_num), 0), 2) amount_arpu,
 | 
	
		
			
				|  |  | +                              round(if(SUM(reg_num) > 0, SUM(cost) / SUM(reg_num), 0), 2) reg_cost,
 | 
	
		
			
				|  |  | +                              round(if(SUM(first_new_user_amount_num) > 0, SUM(cost) / SUM(first_new_user_amount_num), 0), 2) first_new_user_recharge_cost,
 | 
	
		
			
				|  |  | +                              round(if(SUM(new_user_total_amount_num) > 0, SUM(cost) / SUM(new_user_total_amount_num), 0), 2) total_recharge_cost,
 | 
	
		
			
				|  |  | +                              round(if(SUM(cost) > 0, SUM(new_user_total_amount) / SUM(cost), 0), 4) total_roi,
 | 
	
		
			
				|  |  | +                              SUM(hundred_user_num) hundred_user_num,
 | 
	
		
			
				|  |  | +                              round(IF(SUM(hundred_user_num) > 0, SUM(cost) / SUM(hundred_user_num), 0), 2) hundred_user_num_cost,
 | 
	
		
			
				|  |  | +                              SUM(first_role_num) first_role_num,
 | 
	
		
			
				|  |  | +                              SUM(role_num) role_num,
 | 
	
		
			
				|  |  | +                              SUM(new_user_total_role_num) new_user_total_role_num,
 | 
	
		
			
				|  |  | +                              round(IF(SUM(first_role_num) > 0, SUM(cost) / SUM(first_role_num), 0), 2) first_role_num_cost,
 | 
	
		
			
				|  |  | +                              round(IF(SUM(role_num) > 0, SUM(cost) / SUM(role_num), 0), 2) role_num_cost,
 | 
	
		
			
				|  |  | +                              round(IF(SUM(new_user_total_role_num) >0, SUM(cost) / SUM(new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  | +                              round(IF(SUM(reg_num) >0, SUM(first_role_num) / SUM(reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  | +                              round(IF(SUM(reg_num) >0, SUM(role_num) / SUM(reg_num), 0), 4) role_num_rate,
 | 
	
		
			
				|  |  | +                              round(IF(SUM(reg_num) >0, SUM(new_user_total_role_num) / SUM(reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                              
 | 
	
		
			
				|  |  | +                              sum(first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                              sum(new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                              SUM(effective_role_num) as effective_role_num, -- 有效创角人数
 | 
	
		
			
				|  |  | +                              
 | 
	
		
			
				|  |  | +                              ROUND(IFNULL(SUM(first_effective_role_num)/sum(first_role_num),0)*100,2) as first_effective_role_rate,   -- 首日有效创角率 = 首日有效创角人数/首日创角人数
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(new_user_total_effective_role_num)/SUM(new_user_total_role_num),0)*100,2) as new_user_total_effective_role_num_rate,         -- 新用户累计有效创角率 = 新用户累计有效创角人数/新用户累计创角人数
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(effective_role_num)/SUM(role_num),0)*100,2) as effective_role_num_rate,        -- 有效创角率 = 有效创角人数/创角人数
 | 
	
		
			
				|  |  | +                              
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(cost)/SUM(first_effective_role_num),0),2) as first_effective_role_num_cost, -- 首日有效创角成本= 消耗/首日有效创角人数
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(cost)/SUM(new_user_total_effective_role_num),0),2)  as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本 = 消耗/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(cost)/sum(effective_role_num),0),2) as effective_role_num_cost, -- 有效创角成本 = 消耗/有效创角人数
 | 
	
		
			
				|  |  | +                              
 | 
	
		
			
				|  |  | +                              SUM(first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                              sum(new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                              
 | 
	
		
			
				|  |  | +                              
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(cost)/sum(first_effective_role_amount_num),0),2) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本=消耗/首日有效创角付费人数
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(cost)/SUM(new_user_total_effective_role_amount_num),0),2) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本=消耗/新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                              
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(first_effective_role_amount_num)/SUM(first_new_user_amount_count),0)*100,2) as first_effective_role_amount_num_rate,  -- 首日有效创角付费比=首日有效创角付费人数/首日新用户充值人数
 | 
	
		
			
				|  |  | +                              round(IFNULL(SUM(new_user_total_effective_role_amount_num)/SUM(new_user_total_amount_count),0)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比=新用户累计有效创角付费人数/新用户累计充值人数
 | 
	
		
			
				|  |  | +                              ROUND(IFNULL(SUM(new_user_total_amount)/SUM(new_user_total_effective_role_num),0),2) as first_effective_role_arpu,    -- 新用户累计有效创角ARPU=新用户累计充值金额/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                              ROUND(IFNULL(SUM(first_new_user_amount)/SUM(first_effective_role_num),0),2) as new_user_total_effective_role_arpu -- 首日有效创角ARPU=首日新用户充值金额/首日有效创角人数
 | 
	
		
			
				|  |  | +                          FROM game_ads_parent.ads_game_day_parent as a
 | 
	
		
			
				|  |  | +                          left join   game_dw_parent.dw_game_amount_day_parent as b
 | 
	
		
			
				|  |  | +                          on a.dt = b.dt and a.parent_game_id = b.parent_game_id 
 | 
	
		
			
				|  |  | +                        """;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
	
		
			
				|  | @@ -3929,21 +4205,21 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 | 
	
		
			
				|  |  | -     *  Dn的充值金额 / D1-Dn的充值总金额 / Dn的充值人数 /当前消耗(剔除不存在的天数数据) /D1充值金额总和(剔除不存在的天数数据)
 | 
	
		
			
				|  |  | +     * Dn的充值金额 / D1-Dn的充值总金额 / Dn的充值人数 /当前消耗(剔除不存在的天数数据) /D1充值金额总和(剔除不存在的天数数据)
 | 
	
		
			
				|  |  |       * 游戏每日总计趋势sql
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  | -    private static String amountDayStr(String type){
 | 
	
		
			
				|  |  | +    private static String amountDayStr(String type) {
 | 
	
		
			
				|  |  |          //拼接查询条件
 | 
	
		
			
				|  |  |          StringBuilder trendDay = new StringBuilder(StringUtils.EMPTY);
 | 
	
		
			
				|  |  |          trendDay.append("""
 | 
	
		
			
				|  |  | -                    CONCAT(
 | 
	
		
			
				|  |  | -                      SUM(IF(DATE_ADD(a.dt, INTERVAL 0 day) <= DATE(NOW()), %sda1, 0)),'/',
 | 
	
		
			
				|  |  | -                      IFNULL(sum(%sda1),0),'/', 
 | 
	
		
			
				|  |  | -                      sum(ifnull(%sda1_num,0)),'/',
 | 
	
		
			
				|  |  | -                      SUM(IF(DATE_ADD(a.dt, INTERVAL 0 day) <= DATE(NOW()), cost, 0)),'/',
 | 
	
		
			
				|  |  | -                      SUM(IF(DATE_ADD(a.dt, INTERVAL 0 day) <= DATE(NOW()), %sda1, 0))
 | 
	
		
			
				|  |  | -                    ) AS amount_d1 ,
 | 
	
		
			
				|  |  | -                    """.formatted(type, type, type, type));
 | 
	
		
			
				|  |  | +                CONCAT(
 | 
	
		
			
				|  |  | +                  SUM(IF(DATE_ADD(a.dt, INTERVAL 0 day) <= DATE(NOW()), %sda1, 0)),'/',
 | 
	
		
			
				|  |  | +                  IFNULL(sum(%sda1),0),'/', 
 | 
	
		
			
				|  |  | +                  sum(ifnull(%sda1_num,0)),'/',
 | 
	
		
			
				|  |  | +                  SUM(IF(DATE_ADD(a.dt, INTERVAL 0 day) <= DATE(NOW()), cost, 0)),'/',
 | 
	
		
			
				|  |  | +                  SUM(IF(DATE_ADD(a.dt, INTERVAL 0 day) <= DATE(NOW()), %sda1, 0))
 | 
	
		
			
				|  |  | +                ) AS amount_d1 ,
 | 
	
		
			
				|  |  | +                """.formatted(type, type, type, type));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          for (int day = 2; day < 90; day++) {
 | 
	
		
			
				|  |  |              trendDay.append("""
 | 
	
	
		
			
				|  | @@ -3954,19 +4230,19 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                        SUM(IF(DATE_ADD(a.dt, INTERVAL %d day) <= DATE(NOW()), cost, 0)),'/',
 | 
	
		
			
				|  |  |                        SUM(IF(DATE_ADD(a.dt, INTERVAL %d day) <= DATE(NOW()), %sda1, 0))
 | 
	
		
			
				|  |  |                      ) AS amount_d%s ,
 | 
	
		
			
				|  |  | -                    """.formatted( day - 1,type,day,type,day - 1,type, day, type, day, day - 1, day - 1, type, day));
 | 
	
		
			
				|  |  | +                    """.formatted(day - 1, type, day, type, day - 1, type, day, type, day, day - 1, day - 1, type, day));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          //三月
 | 
	
		
			
				|  |  |          trendDay.append("""
 | 
	
		
			
				|  |  | -                    CONCAT(
 | 
	
		
			
				|  |  | -                      SUM(IF(DATE_ADD(a.dt, INTERVAL 2 month) <= DATE(NOW()), %sm3-%sda89, 0)),'/',
 | 
	
		
			
				|  |  | -                      IFNULL(sum(%sm3),0),'/',
 | 
	
		
			
				|  |  | -                      sum(ifnull(%sda90_num,0)),'/',
 | 
	
		
			
				|  |  | -                      SUM(IF(DATE_ADD(a.dt, INTERVAL 2 month) <= DATE(NOW()), cost, 0)),'/',
 | 
	
		
			
				|  |  | -                      SUM(IF(DATE_ADD(a.dt, INTERVAL 2 month) <= DATE(NOW()), %sda1, 0))
 | 
	
		
			
				|  |  | -                    ) AS amount_d90 ,
 | 
	
		
			
				|  |  | -                    """.formatted(type, type, type, type,type));
 | 
	
		
			
				|  |  | +                CONCAT(
 | 
	
		
			
				|  |  | +                  SUM(IF(DATE_ADD(a.dt, INTERVAL 2 month) <= DATE(NOW()), %sm3-%sda89, 0)),'/',
 | 
	
		
			
				|  |  | +                  IFNULL(sum(%sm3),0),'/',
 | 
	
		
			
				|  |  | +                  sum(ifnull(%sda90_num,0)),'/',
 | 
	
		
			
				|  |  | +                  SUM(IF(DATE_ADD(a.dt, INTERVAL 2 month) <= DATE(NOW()), cost, 0)),'/',
 | 
	
		
			
				|  |  | +                  SUM(IF(DATE_ADD(a.dt, INTERVAL 2 month) <= DATE(NOW()), %sda1, 0))
 | 
	
		
			
				|  |  | +                ) AS amount_d90 ,
 | 
	
		
			
				|  |  | +                """.formatted(type, type, type, type, type));
 | 
	
		
			
				|  |  |          for (int month = 4; month <= 12; month++) {
 | 
	
		
			
				|  |  |              trendDay.append("""
 | 
	
		
			
				|  |  |                      CONCAT(
 | 
	
	
		
			
				|  | @@ -3976,7 +4252,7 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                        SUM(IF(DATE_ADD(a.dt, INTERVAL %d month) <= DATE(NOW()), cost, 0)),'/',
 | 
	
		
			
				|  |  |                        SUM(IF(DATE_ADD(a.dt, INTERVAL %d month) <= DATE(NOW()), %sda1, 0))
 | 
	
		
			
				|  |  |                      ) AS amount_m%s ,
 | 
	
		
			
				|  |  | -                    """.formatted(month -1 , type,month,type,month - 1,type, month, type, month, month - 1,month - 1, type,month));
 | 
	
		
			
				|  |  | +                    """.formatted(month - 1, type, month, type, month - 1, type, month, type, month, month - 1, month - 1, type, month));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  //        //拼接sum数据
 | 
	
		
			
				|  |  |          trendDay.append("""
 | 
	
	
		
			
				|  | @@ -4050,7 +4326,30 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                              round(IF(SUM(buy_first_role_num) > 0, SUM(cost) / SUM(buy_first_role_num), 0), 2) first_role_num_cost,
 | 
	
		
			
				|  |  |                              round(IF(SUM(buy_new_user_total_role_num) >0, SUM(cost) / SUM(buy_new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                              round(IF(SUM(buy_reg_num) >0, SUM(buy_first_role_num) / SUM(buy_reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(buy_reg_num) >0, SUM(buy_new_user_total_role_num) / SUM(buy_reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                            round(IF(SUM(buy_reg_num) >0, SUM(buy_new_user_total_role_num) / SUM(buy_reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            sum(buy_first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                            sum(buy_new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                            SUM(buy_effective_role_num) as effective_role_num, -- 有效创角人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            ROUND(IFNULL(SUM(buy_first_effective_role_num)/sum(buy_first_role_num),0)*100,2) as first_effective_role_rate,   -- 首日有效创角率 = 首日有效创角人数/首日创角人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(buy_new_user_total_effective_role_num)/SUM(buy_new_user_total_role_num),0)*100,2) as new_user_total_effective_role_num_rate,         -- 新用户累计有效创角率 = 新用户累计有效创角人数/新用户累计创角人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(buy_effective_role_num)/SUM(buy_role_num),0)*100,2) as effective_role_num_rate,        -- 有效创角率 = 有效创角人数/创角人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/SUM(buy_first_effective_role_num),0),2) as first_effective_role_num_cost, -- 首日有效创角成本= 消耗/首日有效创角人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/SUM(buy_new_user_total_effective_role_num),0),2)  as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本 = 消耗/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/sum(buy_effective_role_num),0),2) as effective_role_num_cost, -- 有效创角成本 = 消耗/有效创角人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            SUM(buy_first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                            sum(buy_new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/sum(buy_first_effective_role_amount_num),0),2) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本=消耗/首日有效创角付费人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/SUM(buy_new_user_total_effective_role_amount_num),0),2) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本=消耗/新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(buy_first_effective_role_amount_num)/SUM(buy_first_new_user_amount_count),0)*100,2) as first_effective_role_amount_num_rate,  -- 首日有效创角付费比=首日有效创角付费人数/首日新用户充值人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(buy_new_user_total_effective_role_amount_num)/SUM(buy_new_user_total_amount_count),0)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比=新用户累计有效创角付费人数/新用户累计充值人数
 | 
	
		
			
				|  |  | +                            ROUND(IFNULL(SUM(buy_new_user_total_amount)/SUM(buy_new_user_total_effective_role_num),0),2) as first_effective_role_arpu,    -- 新用户累计有效创角ARPU=新用户累计充值金额/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                            ROUND(IFNULL(SUM(buy_first_new_user_amount)/SUM(buy_first_effective_role_num),0),2) as new_user_total_effective_role_arpu -- 首日有效创角ARPU=首日新用户充值金额/首日有效创角人数
 | 
	
		
			
				|  |  |                          FROM
 | 
	
		
			
				|  |  |                              ads_game_day
 | 
	
		
			
				|  |  |                      """ + criA +
 | 
	
	
		
			
				|  | @@ -4176,7 +4475,30 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                              round(IF(SUM(nature_first_role_num) > 0, SUM(cost) / SUM(nature_first_role_num), 0), 2) first_role_num_cost,
 | 
	
		
			
				|  |  |                              round(IF(SUM(nature_new_user_total_role_num) >0, SUM(cost) / SUM(nature_new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                              round(IF(SUM(nature_reg_num) >0, SUM(nature_first_role_num) / SUM(nature_reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(nature_reg_num) >0, SUM(nature_new_user_total_role_num) / SUM(nature_reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                            round(IF(SUM(nature_reg_num) >0, SUM(nature_new_user_total_role_num) / SUM(nature_reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            sum(nature_first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                            sum(nature_new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                            SUM(nature_effective_role_num) as effective_role_num, -- 有效创角人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            ROUND(IFNULL(SUM(nature_first_effective_role_num)/sum(nature_first_role_num),0)*100,2) as first_effective_role_rate,   -- 首日有效创角率 = 首日有效创角人数/首日创角人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(nature_new_user_total_effective_role_num)/SUM(nature_new_user_total_role_num),0)*100,2) as new_user_total_effective_role_num_rate,         -- 新用户累计有效创角率 = 新用户累计有效创角人数/新用户累计创角人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(nature_effective_role_num)/SUM(nature_role_num),0)*100,2) as effective_role_num_rate,        -- 有效创角率 = 有效创角人数/创角人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/SUM(nature_first_effective_role_num),0),2) as first_effective_role_num_cost, -- 首日有效创角成本= 消耗/首日有效创角人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/SUM(nature_new_user_total_effective_role_num),0),2)  as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本 = 消耗/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/sum(nature_effective_role_num),0),2) as effective_role_num_cost, -- 有效创角成本 = 消耗/有效创角人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            SUM(nature_first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                            sum(nature_new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/sum(nature_first_effective_role_amount_num),0),2) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本=消耗/首日有效创角付费人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/SUM(nature_new_user_total_effective_role_amount_num),0),2) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本=消耗/新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(nature_first_effective_role_amount_num)/SUM(nature_first_new_user_amount_count),0)*100,2) as first_effective_role_amount_num_rate,  -- 首日有效创角付费比=首日有效创角付费人数/首日新用户充值人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(nature_new_user_total_effective_role_amount_num)/SUM(nature_new_user_total_amount_count),0)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比=新用户累计有效创角付费人数/新用户累计充值人数
 | 
	
		
			
				|  |  | +                            ROUND(IFNULL(SUM(nature_new_user_total_amount)/SUM(nature_new_user_total_effective_role_num),0),2) as first_effective_role_arpu,    -- 新用户累计有效创角ARPU=新用户累计充值金额/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                            ROUND(IFNULL(SUM(nature_first_new_user_amount)/SUM(nature_first_effective_role_num),0),2) as new_user_total_effective_role_arpu -- 首日有效创角ARPU=首日新用户充值金额/首日有效创角人数
 | 
	
		
			
				|  |  |                          FROM
 | 
	
		
			
				|  |  |                              ads_game_day
 | 
	
		
			
				|  |  |                      """ + criA +
 | 
	
	
		
			
				|  | @@ -4303,7 +4625,31 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                  		round(IF(SUM(first_role_num) > 0, SUM(cost) / SUM(first_role_num), 0), 2) first_role_num_cost,
 | 
	
		
			
				|  |  |                  		round(IF(SUM(new_user_total_role_num) >0, SUM(cost) / SUM(new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                  		round(IF(SUM(reg_num) >0, SUM(first_role_num) / SUM(reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  | -                		round(IF(SUM(reg_num) >0, SUM(new_user_total_role_num) / SUM(reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                		round(IF(SUM(reg_num) >0, SUM(new_user_total_role_num) / SUM(reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                		
 | 
	
		
			
				|  |  | +                		sum(first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                        sum(new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                        SUM(effective_role_num) as effective_role_num, -- 有效创角人数
 | 
	
		
			
				|  |  | +                       
 | 
	
		
			
				|  |  | +                        ROUND(IFNULL(SUM(first_effective_role_num)/sum(first_role_num),0)*100,2) as first_effective_role_rate,   -- 首日有效创角率 = 首日有效创角人数/首日创角人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(new_user_total_effective_role_num)/SUM(new_user_total_role_num),0)*100,2) as new_user_total_effective_role_num_rate,         -- 新用户累计有效创角率 = 新用户累计有效创角人数/新用户累计创角人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(effective_role_num)/SUM(role_num),0)*100,2) as effective_role_num_rate,        -- 有效创角率 = 有效创角人数/创角人数
 | 
	
		
			
				|  |  | +                       
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/SUM(first_effective_role_num),0),2) as first_effective_role_num_cost, -- 首日有效创角成本= 消耗/首日有效创角人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/SUM(new_user_total_effective_role_num),0),2)  as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本 = 消耗/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/sum(effective_role_num),0),2) as effective_role_num_cost, -- 有效创角成本 = 消耗/有效创角人数
 | 
	
		
			
				|  |  | +                       
 | 
	
		
			
				|  |  | +                        SUM(first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                        sum(new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                       
 | 
	
		
			
				|  |  | +                       
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/sum(first_effective_role_amount_num),0),2) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本=消耗/首日有效创角付费人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/SUM(new_user_total_effective_role_amount_num),0),2) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本=消耗/新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                       
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(first_effective_role_amount_num)/SUM(first_new_user_amount_count),0)*100,2) as first_effective_role_amount_num_rate,  -- 首日有效创角付费比=首日有效创角付费人数/首日新用户充值人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(new_user_total_effective_role_amount_num)/SUM(new_user_total_amount_count),0)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比=新用户累计有效创角付费人数/新用户累计充值人数
 | 
	
		
			
				|  |  | +                        ROUND(IFNULL(SUM(new_user_total_amount)/SUM(new_user_total_effective_role_num),0),2) as first_effective_role_arpu,    -- 新用户累计有效创角ARPU=新用户累计充值金额/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                        ROUND(IFNULL(SUM(first_new_user_amount)/SUM(first_effective_role_num),0),2) as new_user_total_effective_role_arpu -- 首日有效创角ARPU=首日新用户充值金额/首日有效创角人数
 | 
	
		
			
				|  |  |                  	FROM
 | 
	
		
			
				|  |  |                  		ads_game_day
 | 
	
		
			
				|  |  |                  """ + criA +
 | 
	
	
		
			
				|  | @@ -4440,7 +4786,29 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                              round(IF(SUM(buy_first_role_num) > 0, SUM(cost) / SUM(buy_first_role_num), 0), 2) first_role_num_cost,
 | 
	
		
			
				|  |  |                              round(IF(SUM(buy_new_user_total_role_num) >0, SUM(cost) / SUM(buy_new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                              round(IF(SUM(buy_reg_num) >0, SUM(buy_first_role_num) / SUM(buy_reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(buy_reg_num) >0, SUM(buy_new_user_total_role_num) / SUM(buy_reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                            round(IF(SUM(buy_reg_num) >0, SUM(buy_new_user_total_role_num) / SUM(buy_reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                              sum(buy_first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                            sum(buy_new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                            SUM(buy_effective_role_num) as effective_role_num, -- 有效创角人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            ROUND(IFNULL(SUM(buy_first_effective_role_num)/sum(buy_first_role_num),0)*100,2) as first_effective_role_rate,   -- 首日有效创角率 = 首日有效创角人数/首日创角人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(buy_new_user_total_effective_role_num)/SUM(buy_new_user_total_role_num),0)*100,2) as new_user_total_effective_role_num_rate,         -- 新用户累计有效创角率 = 新用户累计有效创角人数/新用户累计创角人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(buy_effective_role_num)/SUM(buy_role_num),0)*100,2) as effective_role_num_rate,        -- 有效创角率 = 有效创角人数/创角人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/SUM(buy_first_effective_role_num),0),2) as first_effective_role_num_cost, -- 首日有效创角成本= 消耗/首日有效创角人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/SUM(buy_new_user_total_effective_role_num),0),2)  as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本 = 消耗/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/sum(buy_effective_role_num),0),2) as effective_role_num_cost, -- 有效创角成本 = 消耗/有效创角人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            SUM(buy_first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                            sum(buy_new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/sum(buy_first_effective_role_amount_num),0),2) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本=消耗/首日有效创角付费人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/SUM(buy_new_user_total_effective_role_amount_num),0),2) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本=消耗/新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(buy_first_effective_role_amount_num)/SUM(buy_first_new_user_amount_count),0)*100,2) as first_effective_role_amount_num_rate,  -- 首日有效创角付费比=首日有效创角付费人数/首日新用户充值人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(buy_new_user_total_effective_role_amount_num)/SUM(buy_new_user_total_amount_count),0)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比=新用户累计有效创角付费人数/新用户累计充值人数
 | 
	
		
			
				|  |  | +                            ROUND(IFNULL(SUM(buy_new_user_total_amount)/SUM(buy_new_user_total_effective_role_num),0),2) as first_effective_role_arpu,    -- 新用户累计有效创角ARPU=新用户累计充值金额/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                            ROUND(IFNULL(SUM(buy_first_new_user_amount)/SUM(buy_first_effective_role_num),0),2) as new_user_total_effective_role_arpu -- 首日有效创角ARPU=首日新用户充值金额/首日有效创角人数
 | 
	
		
			
				|  |  |                          FROM
 | 
	
		
			
				|  |  |                              game_ads_parent.ads_game_day_parent
 | 
	
		
			
				|  |  |                      """ + criA +
 | 
	
	
		
			
				|  | @@ -4566,7 +4934,30 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                              round(IF(SUM(nature_first_role_num) > 0, SUM(cost) / SUM(nature_first_role_num), 0), 2) first_role_num_cost,
 | 
	
		
			
				|  |  |                              round(IF(SUM(nature_new_user_total_role_num) >0, SUM(cost) / SUM(nature_new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                              round(IF(SUM(nature_reg_num) >0, SUM(nature_first_role_num) / SUM(nature_reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  | -                            round(IF(SUM(nature_reg_num) >0, SUM(nature_new_user_total_role_num) / SUM(nature_reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                            round(IF(SUM(nature_reg_num) >0, SUM(nature_new_user_total_role_num) / SUM(nature_reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            sum(nature_first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                            sum(nature_new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                            SUM(nature_effective_role_num) as effective_role_num, -- 有效创角人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            ROUND(IFNULL(SUM(nature_first_effective_role_num)/sum(nature_first_role_num),0)*100,2) as first_effective_role_rate,   -- 首日有效创角率 = 首日有效创角人数/首日创角人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(nature_new_user_total_effective_role_num)/SUM(nature_new_user_total_role_num),0)*100,2) as new_user_total_effective_role_num_rate,         -- 新用户累计有效创角率 = 新用户累计有效创角人数/新用户累计创角人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(nature_effective_role_num)/SUM(nature_role_num),0)*100,2) as effective_role_num_rate,        -- 有效创角率 = 有效创角人数/创角人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/SUM(nature_first_effective_role_num),0),2) as first_effective_role_num_cost, -- 首日有效创角成本= 消耗/首日有效创角人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/SUM(nature_new_user_total_effective_role_num),0),2)  as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本 = 消耗/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/sum(nature_effective_role_num),0),2) as effective_role_num_cost, -- 有效创角成本 = 消耗/有效创角人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            SUM(nature_first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                            sum(nature_new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/sum(nature_first_effective_role_amount_num),0),2) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本=消耗/首日有效创角付费人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(cost)/SUM(nature_new_user_total_effective_role_amount_num),0),2) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本=消耗/新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                            
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(nature_first_effective_role_amount_num)/SUM(nature_first_new_user_amount_count),0)*100,2) as first_effective_role_amount_num_rate,  -- 首日有效创角付费比=首日有效创角付费人数/首日新用户充值人数
 | 
	
		
			
				|  |  | +                            round(IFNULL(SUM(nature_new_user_total_effective_role_amount_num)/SUM(nature_new_user_total_amount_count),0)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比=新用户累计有效创角付费人数/新用户累计充值人数
 | 
	
		
			
				|  |  | +                            ROUND(IFNULL(SUM(nature_new_user_total_amount)/SUM(nature_new_user_total_effective_role_num),0),2) as first_effective_role_arpu,    -- 新用户累计有效创角ARPU=新用户累计充值金额/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                            ROUND(IFNULL(SUM(nature_first_new_user_amount)/SUM(nature_first_effective_role_num),0),2) as new_user_total_effective_role_arpu -- 首日有效创角ARPU=首日新用户充值金额/首日有效创角人数
 | 
	
		
			
				|  |  |                          FROM
 | 
	
		
			
				|  |  |                              game_ads_parent.ads_game_day_parent
 | 
	
		
			
				|  |  |                      """ + criA +
 | 
	
	
		
			
				|  | @@ -4693,7 +5084,31 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                  		round(IF(SUM(first_role_num) > 0, SUM(cost) / SUM(first_role_num), 0), 2) first_role_num_cost,
 | 
	
		
			
				|  |  |                  		round(IF(SUM(new_user_total_role_num) >0, SUM(cost) / SUM(new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                  		round(IF(SUM(reg_num) >0, SUM(first_role_num) / SUM(reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  | -                		round(IF(SUM(reg_num) >0, SUM(new_user_total_role_num) / SUM(reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                		round(IF(SUM(reg_num) >0, SUM(new_user_total_role_num) / SUM(reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                		
 | 
	
		
			
				|  |  | +                		sum(first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                        sum(new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                        SUM(effective_role_num) as effective_role_num, -- 有效创角人数
 | 
	
		
			
				|  |  | +                       
 | 
	
		
			
				|  |  | +                        ROUND(IFNULL(SUM(first_effective_role_num)/sum(first_role_num),0)*100,2) as first_effective_role_rate,   -- 首日有效创角率 = 首日有效创角人数/首日创角人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(new_user_total_effective_role_num)/SUM(new_user_total_role_num),0)*100,2) as new_user_total_effective_role_num_rate,         -- 新用户累计有效创角率 = 新用户累计有效创角人数/新用户累计创角人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(effective_role_num)/SUM(role_num),0)*100,2) as effective_role_num_rate,        -- 有效创角率 = 有效创角人数/创角人数
 | 
	
		
			
				|  |  | +                       
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/SUM(first_effective_role_num),0),2) as first_effective_role_num_cost, -- 首日有效创角成本= 消耗/首日有效创角人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/SUM(new_user_total_effective_role_num),0),2)  as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本 = 消耗/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/sum(effective_role_num),0),2) as effective_role_num_cost, -- 有效创角成本 = 消耗/有效创角人数
 | 
	
		
			
				|  |  | +                       
 | 
	
		
			
				|  |  | +                        SUM(first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                        sum(new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                       
 | 
	
		
			
				|  |  | +                       
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/sum(first_effective_role_amount_num),0),2) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本=消耗/首日有效创角付费人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/SUM(new_user_total_effective_role_amount_num),0),2) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本=消耗/新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                       
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(first_effective_role_amount_num)/SUM(first_new_user_amount_count),0)*100,2) as first_effective_role_amount_num_rate,  -- 首日有效创角付费比=首日有效创角付费人数/首日新用户充值人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(new_user_total_effective_role_amount_num)/SUM(new_user_total_amount_count),0)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比=新用户累计有效创角付费人数/新用户累计充值人数
 | 
	
		
			
				|  |  | +                        ROUND(IFNULL(SUM(new_user_total_amount)/SUM(new_user_total_effective_role_num),0),2) as first_effective_role_arpu,    -- 新用户累计有效创角ARPU=新用户累计充值金额/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                        ROUND(IFNULL(SUM(first_new_user_amount)/SUM(first_effective_role_num),0),2) as new_user_total_effective_role_arpu -- 首日有效创角ARPU=首日新用户充值金额/首日有效创角人数
 | 
	
		
			
				|  |  |                  	FROM
 | 
	
		
			
				|  |  |                  		game_ads_parent.ads_game_day_parent
 | 
	
		
			
				|  |  |                  """ + criA +
 | 
	
	
		
			
				|  | @@ -4811,7 +5226,31 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                          round(IF(SUM(buy_first_role_num) > 0, SUM(cost) / SUM(buy_first_role_num), 0), 2) first_role_num_cost,
 | 
	
		
			
				|  |  |                          round(IF(SUM(buy_new_user_total_role_num) >0, SUM(cost) / SUM(buy_new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                          round(IF(SUM(buy_reg_num) >0, SUM(buy_first_role_num) / SUM(buy_reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  | -                        round(IF(SUM(buy_reg_num) >0, SUM(buy_new_user_total_role_num) / SUM(buy_reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                        round(IF(SUM(buy_reg_num) >0, SUM(buy_new_user_total_role_num) / SUM(buy_reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                        
 | 
	
		
			
				|  |  | +                        sum(buy_first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                        sum(buy_new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                        SUM(buy_effective_role_num) as effective_role_num, -- 有效创角人数
 | 
	
		
			
				|  |  | +                        
 | 
	
		
			
				|  |  | +                        ROUND(IFNULL(SUM(buy_first_effective_role_num)/sum(buy_first_role_num),0)*100,2) as first_effective_role_rate,   -- 首日有效创角率 = 首日有效创角人数/首日创角人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(buy_new_user_total_effective_role_num)/SUM(buy_new_user_total_role_num),0)*100,2) as new_user_total_effective_role_num_rate,         -- 新用户累计有效创角率 = 新用户累计有效创角人数/新用户累计创角人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(buy_effective_role_num)/SUM(buy_role_num),0)*100,2) as effective_role_num_rate,        -- 有效创角率 = 有效创角人数/创角人数
 | 
	
		
			
				|  |  | +                        
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/SUM(buy_first_effective_role_num),0),2) as first_effective_role_num_cost, -- 首日有效创角成本= 消耗/首日有效创角人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/SUM(buy_new_user_total_effective_role_num),0),2)  as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本 = 消耗/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/sum(buy_effective_role_num),0),2) as effective_role_num_cost, -- 有效创角成本 = 消耗/有效创角人数
 | 
	
		
			
				|  |  | +                        
 | 
	
		
			
				|  |  | +                        SUM(buy_first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                        sum(buy_new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                        
 | 
	
		
			
				|  |  | +                        
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/sum(buy_first_effective_role_amount_num),0),2) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本=消耗/首日有效创角付费人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/SUM(buy_new_user_total_effective_role_amount_num),0),2) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本=消耗/新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                        
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(buy_first_effective_role_amount_num)/SUM(buy_first_new_user_amount_count),0)*100,2) as first_effective_role_amount_num_rate,  -- 首日有效创角付费比=首日有效创角付费人数/首日新用户充值人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(buy_new_user_total_effective_role_amount_num)/SUM(buy_new_user_total_amount_count),0)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比=新用户累计有效创角付费人数/新用户累计充值人数
 | 
	
		
			
				|  |  | +                        ROUND(IFNULL(SUM(buy_new_user_total_amount)/SUM(buy_new_user_total_effective_role_num),0),2) as first_effective_role_arpu,    -- 新用户累计有效创角ARPU=新用户累计充值金额/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                        ROUND(IFNULL(SUM(buy_first_new_user_amount)/SUM(buy_first_effective_role_num),0),2) as new_user_total_effective_role_arpu -- 首日有效创角ARPU=首日新用户充值金额/首日有效创角人数
 | 
	
		
			
				|  |  |                      FROM 
 | 
	
		
			
				|  |  |                      """ + tableName;
 | 
	
		
			
				|  |  |          } else if ("nature".equals(tableType)) {
 | 
	
	
		
			
				|  | @@ -4845,7 +5284,30 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                          round(IF(SUM(nature_first_role_num) > 0, SUM(cost) / SUM(nature_first_role_num), 0), 2) first_role_num_cost,
 | 
	
		
			
				|  |  |                          round(IF(SUM(nature_new_user_total_role_num) >0, SUM(cost) / SUM(nature_new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                          round(IF(SUM(nature_reg_num) >0, SUM(nature_first_role_num) / SUM(nature_reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  | -                        round(IF(SUM(nature_reg_num) >0, SUM(nature_new_user_total_role_num) / SUM(nature_reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                        round(IF(SUM(nature_reg_num) >0, SUM(nature_new_user_total_role_num) / SUM(nature_reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                        
 | 
	
		
			
				|  |  | +                        sum(nature_first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                        sum(nature_new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                        SUM(nature_effective_role_num) as effective_role_num, -- 有效创角人数
 | 
	
		
			
				|  |  | +                        
 | 
	
		
			
				|  |  | +                        ROUND(IFNULL(SUM(nature_first_effective_role_num)/sum(nature_first_role_num),0)*100,2) as first_effective_role_rate,   -- 首日有效创角率 = 首日有效创角人数/首日创角人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(nature_new_user_total_effective_role_num)/SUM(nature_new_user_total_role_num),0)*100,2) as new_user_total_effective_role_num_rate,         -- 新用户累计有效创角率 = 新用户累计有效创角人数/新用户累计创角人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(nature_effective_role_num)/SUM(nature_role_num),0)*100,2) as effective_role_num_rate,        -- 有效创角率 = 有效创角人数/创角人数
 | 
	
		
			
				|  |  | +                        
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/SUM(nature_first_effective_role_num),0),2) as first_effective_role_num_cost, -- 首日有效创角成本= 消耗/首日有效创角人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/SUM(nature_new_user_total_effective_role_num),0),2)  as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本 = 消耗/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/sum(nature_effective_role_num),0),2) as effective_role_num_cost, -- 有效创角成本 = 消耗/有效创角人数
 | 
	
		
			
				|  |  | +                        
 | 
	
		
			
				|  |  | +                        SUM(nature_first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                        sum(nature_new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                        
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/sum(nature_first_effective_role_amount_num),0),2) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本=消耗/首日有效创角付费人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(cost)/SUM(nature_new_user_total_effective_role_amount_num),0),2) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本=消耗/新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                        
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(nature_first_effective_role_amount_num)/SUM(nature_first_new_user_amount_count),0)*100,2) as first_effective_role_amount_num_rate,  -- 首日有效创角付费比=首日有效创角付费人数/首日新用户充值人数
 | 
	
		
			
				|  |  | +                        round(IFNULL(SUM(nature_new_user_total_effective_role_amount_num)/SUM(nature_new_user_total_amount_count),0)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比=新用户累计有效创角付费人数/新用户累计充值人数
 | 
	
		
			
				|  |  | +                        ROUND(IFNULL(SUM(nature_new_user_total_amount)/SUM(nature_new_user_total_effective_role_num),0),2) as first_effective_role_arpu,    -- 新用户累计有效创角ARPU=新用户累计充值金额/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                        ROUND(IFNULL(SUM(nature_first_new_user_amount)/SUM(nature_first_effective_role_num),0),2) as new_user_total_effective_role_arpu -- 首日有效创角ARPU=首日新用户充值金额/首日有效创角人数
 | 
	
		
			
				|  |  |                      FROM 
 | 
	
		
			
				|  |  |                      """ + tableName;
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -4880,7 +5342,30 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |                      round(IF(SUM(first_role_num) > 0, SUM(cost) / SUM(first_role_num), 0), 2) first_role_num_cost,
 | 
	
		
			
				|  |  |                      round(IF(SUM(new_user_total_role_num) >0, SUM(cost) / SUM(new_user_total_role_num), 0), 2) new_user_total_role_num_cost,
 | 
	
		
			
				|  |  |                      round(IF(SUM(reg_num) >0, SUM(first_role_num) / SUM(reg_num), 0), 4) first_role_num_rate,
 | 
	
		
			
				|  |  | -                    round(IF(SUM(reg_num) >0, SUM(new_user_total_role_num) / SUM(reg_num), 0), 4) new_user_total_role_num_rate
 | 
	
		
			
				|  |  | +                    round(IF(SUM(reg_num) >0, SUM(new_user_total_role_num) / SUM(reg_num), 0), 4) new_user_total_role_num_rate,
 | 
	
		
			
				|  |  | +                    
 | 
	
		
			
				|  |  | +                    sum(first_effective_role_num) as first_effective_role_num,  -- 首日有效创角人数
 | 
	
		
			
				|  |  | +                    sum(new_user_total_effective_role_num) as new_user_total_effective_role_num,  -- 新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                    SUM(effective_role_num) as effective_role_num, -- 有效创角人数
 | 
	
		
			
				|  |  | +                    
 | 
	
		
			
				|  |  | +                    ROUND(IFNULL(SUM(first_effective_role_num)/sum(first_role_num),0)*100,2) as first_effective_role_rate,   -- 首日有效创角率 = 首日有效创角人数/首日创角人数
 | 
	
		
			
				|  |  | +                    round(IFNULL(SUM(new_user_total_effective_role_num)/SUM(new_user_total_role_num),0)*100,2) as new_user_total_effective_role_num_rate,         -- 新用户累计有效创角率 = 新用户累计有效创角人数/新用户累计创角人数
 | 
	
		
			
				|  |  | +                    round(IFNULL(SUM(effective_role_num)/SUM(role_num),0)*100,2) as effective_role_num_rate,        -- 有效创角率 = 有效创角人数/创角人数
 | 
	
		
			
				|  |  | +                    
 | 
	
		
			
				|  |  | +                    round(IFNULL(SUM(cost)/SUM(first_effective_role_num),0),2) as first_effective_role_num_cost, -- 首日有效创角成本= 消耗/首日有效创角人数
 | 
	
		
			
				|  |  | +                    round(IFNULL(SUM(cost)/SUM(new_user_total_effective_role_num),0),2)  as new_user_total_effective_role_num_cost, -- 新用户累计有效创角成本 = 消耗/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                    round(IFNULL(SUM(cost)/sum(effective_role_num),0),2) as effective_role_num_cost, -- 有效创角成本 = 消耗/有效创角人数
 | 
	
		
			
				|  |  | +                    
 | 
	
		
			
				|  |  | +                    SUM(first_effective_role_amount_num) as first_effective_role_amount_num, -- 首日有效创角付费人数
 | 
	
		
			
				|  |  | +                    sum(new_user_total_effective_role_amount_num) as new_user_total_effective_role_amount_num, -- 新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                    
 | 
	
		
			
				|  |  | +                    round(IFNULL(SUM(cost)/sum(first_effective_role_amount_num),0),2) as first_effective_role_amount_num_cost, -- 首日有效创角付费成本=消耗/首日有效创角付费人数
 | 
	
		
			
				|  |  | +                    round(IFNULL(SUM(cost)/SUM(new_user_total_effective_role_amount_num),0),2) as new_user_total_effective_role_amount_num_cost, -- 新用户累计有效创角付费成本=消耗/新用户累计有效创角付费人数
 | 
	
		
			
				|  |  | +                    
 | 
	
		
			
				|  |  | +                    round(IFNULL(SUM(first_effective_role_amount_num)/SUM(first_new_user_amount_count),0)*100,2) as first_effective_role_amount_num_rate,  -- 首日有效创角付费比=首日有效创角付费人数/首日新用户充值人数
 | 
	
		
			
				|  |  | +                    round(IFNULL(SUM(new_user_total_effective_role_amount_num)/SUM(new_user_total_amount_count),0)*100,2) as new_user_total_effective_role_amount_num_rate, -- 新用户累计有效创角付费比=新用户累计有效创角付费人数/新用户累计充值人数
 | 
	
		
			
				|  |  | +                    ROUND(IFNULL(SUM(new_user_total_amount)/SUM(new_user_total_effective_role_num),0),2) as first_effective_role_arpu,    -- 新用户累计有效创角ARPU=新用户累计充值金额/新用户累计有效创角人数
 | 
	
		
			
				|  |  | +                    ROUND(IFNULL(SUM(first_new_user_amount)/SUM(first_effective_role_num),0),2) as new_user_total_effective_role_arpu -- 首日有效创角ARPU=首日新用户充值金额/首日有效创角人数
 | 
	
		
			
				|  |  |                  FROM 
 | 
	
		
			
				|  |  |                  """ + tableName;
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -5694,9 +6179,9 @@ public class GameDataServiceImpl implements IGameDataService {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          //查询总记录数
 | 
	
		
			
				|  |  |          //默认子游戏
 | 
	
		
			
				|  |  | -        Sql countSql = Sqls.create(getCountNumSubgameSql2(cri, agentCri, subGameSql,yesterdayTotalAmountCri));
 | 
	
		
			
				|  |  | +        Sql countSql = Sqls.create(getCountNumSubgameSql2(cri, agentCri, subGameSql, yesterdayTotalAmountCri));
 | 
	
		
			
				|  |  |          if (dto.getGameDimension() == 2) {
 | 
	
		
			
				|  |  | -            countSql = Sqls.create(getCountNumSql(cri, agentCri,yesterdayTotalAmountCri));
 | 
	
		
			
				|  |  | +            countSql = Sqls.create(getCountNumSql(cri, agentCri, yesterdayTotalAmountCri));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          countSql.setCallback(Sqls.callback.integer());
 | 
	
		
			
				|  |  |          dao.execute(countSql);
 |