ltv 多维度

This commit is contained in:
wuaho 2021-07-30 16:14:34 +08:00
parent a729174c51
commit b0b7d6de6c
2 changed files with 8 additions and 5 deletions

View File

@ -95,6 +95,9 @@ async def data_authority(request: Request,
return schemas.Msg(code=0, msg='ok', data=data) return schemas.Msg(code=0, msg='ok', data=data)
@router.get("/my_event") @router.get("/my_event")
async def my_event(request: Request, async def my_event(request: Request,
game: str, game: str,

View File

@ -81,7 +81,7 @@ class XAnalysis:
def ltv_model_sql(self): def ltv_model_sql(self):
days = (arrow.get(self.event_view['endTime']).date() - arrow.get(self.event_view['startTime']).date()).days days = (arrow.get(self.event_view['endTime']).date() - arrow.get(self.event_view['startTime']).date()).days
quota = self.event_view['quota']
select_ltv = [] select_ltv = []
sumpay = [] sumpay = []
for i in range(1, days): for i in range(1, days):
@ -106,7 +106,7 @@ class XAnalysis:
sql = f"""SELECT toString(reg.date) as date, sql = f"""SELECT toString(reg.date) as date,
cnt1, cnt1,
{select_ltv_str} {select_ltv_str}
FROM (SELECT toDate(addHours(`#event_time`, `#zone_offset`)) as date, uniqExact(`#account_id`) cnt1 FROM (SELECT toDate(addHours(`#event_time`, `#zone_offset`)) as date, uniqExact(`{quota}`) cnt1
FROM {self.game}.event FROM {self.game}.event
where `#event_name` = 'create_account' where `#event_name` = 'create_account'
AND {where_str} AND {where_str}
@ -114,14 +114,14 @@ class XAnalysis:
left join left join
(select a.date, (select a.date,
{sumpay_str} {sumpay_str}
from (SELECT toDate(addHours(`#event_time`, `#zone_offset`)) as date, `#account_id` from (SELECT toDate(addHours(`#event_time`, `#zone_offset`)) as date, `{quota}`
FROM {self.game}.event FROM {self.game}.event
where `#event_name` = 'create_account' where `#event_name` = 'create_account'
and {where_str}) as a and {where_str}) as a
left join (select `#account_id`, unitPrice/100 as money, toDate(addHours(`#event_time`, `#zone_offset`)) as date left join (select `{quota}`, unitPrice/100 as money, toDate(addHours(`#event_time`, `#zone_offset`)) as date
from {self.game}.event from {self.game}.event
where `#event_name` = 'pay') b where `#event_name` = 'pay') b
on a.`#account_id` = b.`#account_id` on a.`{quota}` = b.`{quota}`
group by a.date) log on reg.date = log.date group by a.date) log on reg.date = log.date
order by date order by date
""" """