From 3d2abb6e140ad46205fc05868a2a871258eadf77 Mon Sep 17 00:00:00 2001 From: haoqiyue <1293971940@qq.com> Date: Thu, 9 Mar 2023 16:34:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=85=E5=80=BC=E6=8E=92=E8=A1=8Csql?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/behavior_analysis.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/models/behavior_analysis.py b/models/behavior_analysis.py index 05a1563..e66dbed 100644 --- a/models/behavior_analysis.py +++ b/models/behavior_analysis.py @@ -839,6 +839,23 @@ addHours("#event_time", 8) >= '{stat_date}' AND addHours("#event_time", 8) <= '{ `#event_name` = 'create_account' and is_new_device = 1) b on a.`#distinct_id`= b.`#distinct_id` and a.date = b.date GROUP BY toDate(addHours("#event_time", 8))""" + # 排行榜前100名提取优化处理 + if event_name_display == '充值排行': + game = self.game + # 截取原始sql中动态条件部分 + aaa = r'WHERE(.*?)GROUP' + bbb = re.findall(aaa, str(sql)) + dt_where = bbb[0] + sql = f""" + SELECT toDate(addHours({game}.event."#event_time", 8)) AS date,{game}.event."#account_id", + round(sum(if({game}.event."#event_name" = 'pay', {game}.event."unitPrice", 0)) / 100,2) AS values + FROM {game}.event + WHERE {dt_where} and {game}.event.`#account_id` in ( + SELECT {game}.event."#account_id" + FROM {game}.event + WHERE {dt_where} GROUP BY {game}.event."#account_id" + ORDER BY round(sum(if({game}.event."#event_name" = 'pay', {game}.event."unitPrice", 0)) / 100,2) AS values desc LIMIT 100) + GROUP BY toDate(addHours({game}.event."#event_time", 8)),{game}.event."#account_id" ORDER BY date LIMIT 100000""" sqls.append({'sql': sql, 'group_label': self.group_label, 'groupby': [i.key for i in self.groupby],