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