特殊处理的sql加条件
This commit is contained in:
parent
d8a5735cea
commit
d02b25e5c0
@ -763,29 +763,52 @@ class BehaviorAnalysis:
|
|||||||
stat_date = self.start_date
|
stat_date = self.start_date
|
||||||
end_date = self.end_date
|
end_date = self.end_date
|
||||||
game = self.game
|
game = self.game
|
||||||
sql = f"""
|
if len(event_filter) > 0:
|
||||||
select aa.date as date,round((a/b)*100,2) as values from
|
where_fil = str(and_(*event_filter, *base_where).compile(compile_kwargs={"literal_binds": True}))
|
||||||
(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
|
sql = f"""
|
||||||
WHERE addHours({game}.event."#event_time", 8) >= '{stat_date}' AND addHours({game}.event."#event_time", 8) <= '{end_date}'
|
select aa.date as date,round((a/b)*100,2) as values from
|
||||||
AND {game}.event."#event_name"='pay' and orderid NOT LIKE '%GM%' GROUP BY toDate(addHours({game}.event."#event_time", 8))) as aa
|
(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
|
||||||
LEFT join
|
WHERE {where_fil}
|
||||||
(SELECT toDate(addHours({game}.event."#event_time", 8)) AS date, round(uniqExact({game}.event."#account_id"), 2) AS b
|
AND {game}.event."#event_name"='pay' and orderid NOT LIKE '%GM%' GROUP BY toDate(addHours({game}.event."#event_time", 8))) as aa
|
||||||
FROM {game}.event
|
LEFT join
|
||||||
WHERE addHours({game}.event."#event_time", 8) >= '{stat_date}' AND addHours({game}.event."#event_time", 8) <= '{end_date}'
|
(SELECT toDate(addHours({game}.event."#event_time", 8)) AS date, round(uniqExact({game}.event."#account_id"), 2) AS b
|
||||||
GROUP BY toDate(addHours({game}.event."#event_time", 8))) as bb on aa.date = bb.date ORDER by date
|
FROM {game}.event
|
||||||
"""
|
WHERE {where_fil}
|
||||||
|
GROUP BY toDate(addHours({game}.event."#event_time", 8))) as bb on aa.date = bb.date ORDER by date
|
||||||
|
"""
|
||||||
|
else:
|
||||||
|
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
|
||||||
|
"""
|
||||||
# 单独设备付费率的拿出来
|
# 单独设备付费率的拿出来
|
||||||
if event.get('customEvent') == 'pay.touch_device_count/login.touch_device_count':
|
if event.get('customEvent') == 'pay.touch_device_count/login.touch_device_count':
|
||||||
stat_date = self.start_date
|
stat_date = self.start_date
|
||||||
end_date = self.end_date
|
end_date = self.end_date
|
||||||
game = self.game
|
game = self.game
|
||||||
sql = f"""
|
if len(event_filter) > 0:
|
||||||
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
|
where_fil = str(and_(*event_filter, *base_where).compile(compile_kwargs={"literal_binds": True}))
|
||||||
FROM {game}.event
|
sql = f"""
|
||||||
WHERE addHours({game}.event."#event_time", 8) >= '{stat_date}'
|
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
|
||||||
AND addHours({game}.event."#event_time", 8) <= '{end_date}'
|
FROM {game}.event
|
||||||
AND {game}.event."#event_name" IN ('pay', 'login')
|
WHERE {where_fil}
|
||||||
GROUP BY toDate(addHours({game}.event."#event_time", 8)) ORDER BY date LIMIT 100000
|
AND {game}.event."#event_name" IN ('pay', 'login')
|
||||||
|
GROUP BY toDate(addHours({game}.event."#event_time", 8)) ORDER BY date LIMIT 100000
|
||||||
|
"""
|
||||||
|
else:
|
||||||
|
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
|
||||||
|
Loading…
Reference in New Issue
Block a user