1.优化付费率计算错误的问题

This commit is contained in:
李伟 2022-03-31 17:42:11 +08:00
parent 6c0afdf57e
commit d94af8faea

View File

@ -404,6 +404,7 @@ class BehaviorAnalysis:
if event.get('customType') == 'formula': if event.get('customType') == 'formula':
if event.get('customEvent'): if event.get('customEvent'):
#组合公式的内容
formula = event.get('customEvent') formula = event.get('customEvent')
custom = CustomEvent(self.event_tbl, formula, format).parse() custom = CustomEvent(self.event_tbl, formula, format).parse()
event_name = custom['event_name'] event_name = custom['event_name']
@ -480,6 +481,22 @@ class BehaviorAnalysis:
sql = str(qry.compile(compile_kwargs={"literal_binds": True})) sql = str(qry.compile(compile_kwargs={"literal_binds": True}))
print(sql) print(sql)
# 单独付费率的拿出来
if event.get('customEvent') == 'pay.touch_user_count/login.touch_user_count':
stat_date=self.start_date
end_date=self.end_date
game=self.game
sql=f"""
select aa.date as date,round((a/b)*100,2) as values from
(select toDate(addHours({game}.event."#event_time", 8)) AS date,uniqCombined(if({game}.event."#event_name" = 'pay', {game}.event."#account_id", NULL)) as a from {game}.event
WHERE addHours({game}.event."#event_time", 8) >= '{stat_date}' AND addHours({game}.event."#event_time", 8) <= '{end_date}'
AND {game}.event."#event_name"='pay' and orderid NOT LIKE '%GM%' GROUP BY toDate(addHours({game}.event."#event_time", 8))) as aa
LEFT join
(SELECT toDate(addHours({game}.event."#event_time", 8)) AS date, round(uniqExact({game}.event."#account_id"), 2) AS b
FROM {game}.event
WHERE addHours({game}.event."#event_time", 8) >= '{stat_date}' AND addHours({game}.event."#event_time", 8) <= '{end_date}'
GROUP BY toDate(addHours({game}.event."#event_time", 8))) as bb on aa.date = bb.date ORDER by date
"""
sqls.append({'sql': sql, sqls.append({'sql': sql,
'groupby': [i.key for i in self.groupby], 'groupby': [i.key for i in self.groupby],
'date_range': self.date_range, 'date_range': self.date_range,