From 76c5710ee7beff370b44fb6ad6ca0f5be2d24680 Mon Sep 17 00:00:00 2001 From: wuaho Date: Fri, 30 Jul 2021 14:49:21 +0800 Subject: [PATCH] ltv --- api/api_v1/endpoints/xquery.py | 8 +++++--- models/x_analysis.py | 8 ++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/api/api_v1/endpoints/xquery.py b/api/api_v1/endpoints/xquery.py index d7a6de5..2bfb6ad 100644 --- a/api/api_v1/endpoints/xquery.py +++ b/api/api_v1/endpoints/xquery.py @@ -29,8 +29,8 @@ async def ltv_model_sql( ) -> schemas.Msg: """ ltv模型sql """ await analysis.init() - sql = analysis.ltv_model_sql() - return schemas.Msg(code=0, msg='ok', data=sql) + data = analysis.ltv_model_sql() + return schemas.Msg(code=0, msg='ok', data=[data]) @router.post("/ltv_model") @@ -43,7 +43,9 @@ async def ltv_model_sql( ) -> schemas.Msg: """ ltv模型sql """ await analysis.init() - sql = analysis.ltv_model_sql() + + res = analysis.ltv_model_sql() + sql = res['sql'] df = await ckdb.query_dataframe(sql) df.fillna(0, inplace=True) df.rename(columns={'date': '注册日期', 'cnt1': '角色数'}, inplace=True) diff --git a/models/x_analysis.py b/models/x_analysis.py index bd01baa..145fb92 100644 --- a/models/x_analysis.py +++ b/models/x_analysis.py @@ -108,7 +108,7 @@ class XAnalysis: {select_ltv_str} FROM (SELECT toDate(addHours(`#event_time`, `#zone_offset`)) as date, uniqExact(`#account_id`) cnt1 FROM {self.game}.event - where `#event_name` = 'create_role' + where `#event_name` = 'create_account' AND {where_str} GROUP BY toDate(addHours(`#event_time`, `#zone_offset`))) as reg left join @@ -116,14 +116,14 @@ class XAnalysis: {sumpay_str} from (SELECT toDate(addHours(`#event_time`, `#zone_offset`)) as date, `#account_id` FROM {self.game}.event - where `#event_name` = 'create_role' + where `#event_name` = 'create_account' and {where_str}) as a left join (select `#account_id`, money, toDate(addHours(`#event_time`, `#zone_offset`)) as date from {self.game}.event - where `#event_name` = 'rechargeGame') b + where `#event_name` = 'pay') b on a.`#account_id` = b.`#account_id` group by a.date) log on reg.date = log.date order by date """ print(sql) - return sql + return {'sql': sql}