ltv账号筛选条件
This commit is contained in:
parent
74be7a6ed3
commit
39989a130f
@ -25,6 +25,7 @@ class XAnalysis:
|
|||||||
self.events = []
|
self.events = []
|
||||||
|
|
||||||
self.global_filters = []
|
self.global_filters = []
|
||||||
|
self.account_filters = []
|
||||||
|
|
||||||
def _get_global_filters(self):
|
def _get_global_filters(self):
|
||||||
return self.event_view.get('filts') or []
|
return self.event_view.get('filts') or []
|
||||||
@ -54,11 +55,11 @@ class XAnalysis:
|
|||||||
self.global_filters = self._get_global_filters()
|
self.global_filters = self._get_global_filters()
|
||||||
# 用户自带过滤
|
# 用户自带过滤
|
||||||
if 'data_where' in kwargs:
|
if 'data_where' in kwargs:
|
||||||
self.global_filters.extend(kwargs['data_where'].get(self.game, []))
|
self.account_filters = kwargs['data_where'].get(self.game, [])
|
||||||
|
|
||||||
def handler_filts(self):
|
def handler_filts(self, filters):
|
||||||
where = []
|
where = []
|
||||||
for item in self.global_filters:
|
for item in filters:
|
||||||
|
|
||||||
col = sa.Column(item['columnName'])
|
col = sa.Column(item['columnName'])
|
||||||
|
|
||||||
@ -121,20 +122,27 @@ class XAnalysis:
|
|||||||
sql = str(qry.compile(compile_kwargs={"literal_binds": True}))
|
sql = str(qry.compile(compile_kwargs={"literal_binds": True}))
|
||||||
where_str = sql.split('WHERE ')[1]
|
where_str = sql.split('WHERE ')[1]
|
||||||
|
|
||||||
where_order = self.handler_filts()
|
where_order = self.handler_filts(self.global_filters)
|
||||||
where_order_str = 1
|
where_order_str = 1
|
||||||
if where_order:
|
if where_order:
|
||||||
qry = sa.select().where(*where_order)
|
qry = sa.select().where(*where_order)
|
||||||
sql = str(qry.compile(compile_kwargs={"literal_binds": True}))
|
sql = str(qry.compile(compile_kwargs={"literal_binds": True}))
|
||||||
where_order_str = sql.split('WHERE ')[1]
|
where_order_str = sql.split('WHERE ')[1]
|
||||||
|
|
||||||
|
where_account = self.handler_filts(self.account_filters)
|
||||||
|
where_account_str = 1
|
||||||
|
if where_account:
|
||||||
|
qry = sa.select().where(*where_account)
|
||||||
|
sql = str(qry.compile(compile_kwargs={"literal_binds": True}))
|
||||||
|
where_account_str = sql.split('WHERE ')[1]
|
||||||
|
|
||||||
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(`{quota}`) 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} AND {where_account_str}
|
||||||
GROUP BY toDate(addHours(`#event_time`, `#zone_offset`))) as reg
|
GROUP BY toDate(addHours(`#event_time`, `#zone_offset`))) as reg
|
||||||
left join
|
left join
|
||||||
(select a.date,
|
(select a.date,
|
||||||
@ -142,10 +150,10 @@ class XAnalysis:
|
|||||||
from (SELECT toDate(addHours(`#event_time`, `#zone_offset`)) as date, `{quota}`
|
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} AND {where_account_str} ) as a
|
||||||
left join (select `{quota}`, 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' and {where_order_str}) b
|
where `#event_name` = 'pay' and {where_order_str} AND {where_account_str}) b
|
||||||
on a.`{quota}` = b.`{quota}`
|
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
|
||||||
|
Loading…
Reference in New Issue
Block a user