From a65a023f1d92854dee25cdc846d00355ba9dc2e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BC=9F?= <250213850@qq.com> Date: Sat, 7 May 2022 14:21:40 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E5=88=86=E5=B8=83=E5=88=86?= =?UTF-8?q?=E6=9E=90=E9=87=8C=E9=9D=A2=E5=88=97=E8=A1=A8=E5=8E=BB=E9=87=8D?= =?UTF-8?q?=E6=95=B0=E6=97=A0=E6=B3=95=E6=98=BE=E7=A4=BA=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/api_v1/endpoints/query.py | 8 ++++++++ models/behavior_analysis.py | 4 +++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/api/api_v1/endpoints/query.py b/api/api_v1/endpoints/query.py index ab67d70..496cde9 100644 --- a/api/api_v1/endpoints/query.py +++ b/api/api_v1/endpoints/query.py @@ -1014,6 +1014,11 @@ async def scatter_model( df = await ckdb.query_dataframe(sql) if df.empty: return schemas.Msg(code=-9, msg='无数据', data=None) + if 'list' in str(type(df['values'][0])): + f=lambda x:x[0] + df['values']=df['values'].map(f) + + #df['values']=df['values'].astype(str) df.fillna(0, inplace=True) #转换数据类型为int df['values'] = df['values'].astype(int) @@ -1184,6 +1189,9 @@ async def scatter_model( df = await ckdb.query_dataframe(sql) if df.empty: return schemas.Msg(code=-9, msg='无数据', data=None) + if 'list' in str(type(df['values'][0])): + f = lambda x: x[0] + df['values'] = df['values'].map(f) df.fillna(0, inplace=True) # 转换数据类型为int df['values'] = df['values'].astype(int) diff --git a/models/behavior_analysis.py b/models/behavior_analysis.py index 29b6a57..98a0c66 100644 --- a/models/behavior_analysis.py +++ b/models/behavior_analysis.py @@ -543,7 +543,7 @@ GROUP BY toDate(addHours("#event_time", 8))""" }) return sqls - + #在漏斗分析,事件分析模型里面都有用到这块 async def funnel_model_sql(self): """ SELECT level, count(*) AS values @@ -611,6 +611,8 @@ ORDER BY level event = self.events[0] event_name = event['eventName'] analysis = event['analysis'] + if analysis == 'list_distinct': + analysis = 'max' e_account_id_col = getattr(self.event_tbl.c, '#account_id').label('uid') u_account_id_col = getattr(self.user_tbl.c, '#account_id') event_name_col = getattr(self.event_tbl.c, '#event_name')