设备付费率
This commit is contained in:
parent
e50780e273
commit
d8a5735cea
@ -70,7 +70,7 @@ class CustomEvent:
|
|||||||
# 总次数
|
# 总次数
|
||||||
if comp == 'total_count':
|
if comp == 'total_count':
|
||||||
return func.sum(getattr(func, 'if')(getattr(self.tbl.c, '#event_name') == event_name, 1, 0))
|
return func.sum(getattr(func, 'if')(getattr(self.tbl.c, '#event_name') == event_name, 1, 0))
|
||||||
elif comp == 'touch_user_count':
|
elif comp == 'touch_user_count' or comp == 'touch_device_count':
|
||||||
return func.uniqCombined(getattr(func, 'if')(getattr(self.tbl.c, '#event_name') == event_name,
|
return func.uniqCombined(getattr(func, 'if')(getattr(self.tbl.c, '#event_name') == event_name,
|
||||||
getattr(self.tbl.c, '#account_id'), None))
|
getattr(self.tbl.c, '#account_id'), None))
|
||||||
elif comp == 'touch_user_avg':
|
elif comp == 'touch_user_avg':
|
||||||
@ -684,7 +684,7 @@ class BehaviorAnalysis:
|
|||||||
# 聚合方式
|
# 聚合方式
|
||||||
if analysis == 'total_count':
|
if analysis == 'total_count':
|
||||||
selectd = select_exprs + [func.count().label('values')]
|
selectd = select_exprs + [func.count().label('values')]
|
||||||
elif analysis == 'touch_user_count':
|
elif analysis == 'touch_user_count' or analysis == 'touch_device_count':
|
||||||
selectd = select_exprs + [func.count(sa.distinct(e_account_id_col)).label('values')]
|
selectd = select_exprs + [func.count(sa.distinct(e_account_id_col)).label('values')]
|
||||||
elif analysis == 'touch_user_avg':
|
elif analysis == 'touch_user_avg':
|
||||||
selectd = select_exprs + [
|
selectd = select_exprs + [
|
||||||
@ -701,7 +701,7 @@ class BehaviorAnalysis:
|
|||||||
if analysis == 'total_count':
|
if analysis == 'total_count':
|
||||||
selectd = select_exprs + [
|
selectd = select_exprs + [
|
||||||
settings.ARITHMETIC[operator](func.count(), operator_val).label('values')]
|
settings.ARITHMETIC[operator](func.count(), operator_val).label('values')]
|
||||||
elif analysis == 'touch_user_count':
|
elif analysis == 'touch_user_count' or analysis == 'touch_device_count':
|
||||||
selectd = select_exprs + [
|
selectd = select_exprs + [
|
||||||
settings.ARITHMETIC[operator](func.count(sa.distinct(e_account_id_col)),
|
settings.ARITHMETIC[operator](func.count(sa.distinct(e_account_id_col)),
|
||||||
operator_val).label('values')]
|
operator_val).label('values')]
|
||||||
@ -774,6 +774,19 @@ FROM {game}.event
|
|||||||
WHERE addHours({game}.event."#event_time", 8) >= '{stat_date}' AND addHours({game}.event."#event_time", 8) <= '{end_date}'
|
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
|
GROUP BY toDate(addHours({game}.event."#event_time", 8))) as bb on aa.date = bb.date ORDER by date
|
||||||
"""
|
"""
|
||||||
|
# 单独设备付费率的拿出来
|
||||||
|
if event.get('customEvent') == 'pay.touch_device_count/login.touch_device_count':
|
||||||
|
stat_date = self.start_date
|
||||||
|
end_date = self.end_date
|
||||||
|
game = self.game
|
||||||
|
sql = f"""
|
||||||
|
select toDate(addHours({game}.event."#event_time", 8)) AS date,round((uniqCombined(if({game}.event."#event_name" = 'pay',{game}.event.`#distinct_id`,NULL)) / uniqCombined(if({game}.event."#event_name" = 'login',{game}.event."#distinct_id",NULL))) * 100,2) AS values
|
||||||
|
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" IN ('pay', 'login')
|
||||||
|
GROUP BY toDate(addHours({game}.event."#event_time", 8)) ORDER BY date LIMIT 100000
|
||||||
|
"""
|
||||||
# 单独把新增付费人数(以设备为维度)拿出来
|
# 单独把新增付费人数(以设备为维度)拿出来
|
||||||
if event.get('event_attr') == '触发用户数' and ['is_new_device', 'orderid'] == [i['columnName'] for i in
|
if event.get('event_attr') == '触发用户数' and ['is_new_device', 'orderid'] == [i['columnName'] for i in
|
||||||
event.get('filts')]:
|
event.get('filts')]:
|
||||||
|
Loading…
Reference in New Issue
Block a user