diff --git a/models/behavior_analysis.py b/models/behavior_analysis.py index 999f6be..c4ec3d8 100644 --- a/models/behavior_analysis.py +++ b/models/behavior_analysis.py @@ -404,6 +404,7 @@ class BehaviorAnalysis: if event.get('customType') == 'formula': if event.get('customEvent'): + #组合公式的内容 formula = event.get('customEvent') custom = CustomEvent(self.event_tbl, formula, format).parse() event_name = custom['event_name'] @@ -480,6 +481,22 @@ class BehaviorAnalysis: sql = str(qry.compile(compile_kwargs={"literal_binds": True})) 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, 'groupby': [i.key for i in self.groupby], 'date_range': self.date_range,