分布分析导出
This commit is contained in:
parent
b97ce1a77a
commit
f8c48df43b
@ -587,6 +587,27 @@ async def scatter_model_sql(
|
|||||||
data = analysis.scatter_model_sql()
|
data = analysis.scatter_model_sql()
|
||||||
return schemas.Msg(code=0, msg='ok', data=[data])
|
return schemas.Msg(code=0, msg='ok', data=[data])
|
||||||
|
|
||||||
|
@router.post("/scatter_model_export")
|
||||||
|
async def retention_model_export(request: Request,
|
||||||
|
game: str,
|
||||||
|
ckdb: CKDrive = Depends(get_ck_db),
|
||||||
|
analysis: BehaviorAnalysis = Depends(BehaviorAnalysis),
|
||||||
|
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
||||||
|
):
|
||||||
|
""" 分布分析 数据导出"""
|
||||||
|
await analysis.init(data_where=current_user.data_where)
|
||||||
|
data = analysis.scatter_model_sql()
|
||||||
|
file_name = quote(f'分布分析.xlsx')
|
||||||
|
mime = mimetypes.guess_type(file_name)[0]
|
||||||
|
|
||||||
|
sql = data['sql']
|
||||||
|
df = await ckdb.query_dataframe(sql)
|
||||||
|
df_to_stream = DfToStream((df, '分布分析'))
|
||||||
|
with df_to_stream as d:
|
||||||
|
export = d.to_stream()
|
||||||
|
return StreamingResponse(export, media_type=mime, headers={'Content-Disposition': f'filename="{file_name}"'})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@router.post("/scatter_model")
|
@router.post("/scatter_model")
|
||||||
async def scatter_model(
|
async def scatter_model(
|
||||||
|
@ -593,7 +593,7 @@ ORDER BY level
|
|||||||
event = self.events[0]
|
event = self.events[0]
|
||||||
event_name = event['eventName']
|
event_name = event['eventName']
|
||||||
analysis = event['analysis']
|
analysis = event['analysis']
|
||||||
e_account_id_col = getattr(self.event_tbl.c, '#account_id')
|
e_account_id_col = getattr(self.event_tbl.c, '#account_id').label('uid')
|
||||||
u_account_id_col = getattr(self.user_tbl.c, '#account_id')
|
u_account_id_col = getattr(self.user_tbl.c, '#account_id')
|
||||||
event_name_col = getattr(self.event_tbl.c, '#event_name')
|
event_name_col = getattr(self.event_tbl.c, '#event_name')
|
||||||
event_time_col = getattr(self.event_tbl.c, '#event_time').label('date')
|
event_time_col = getattr(self.event_tbl.c, '#event_time').label('date')
|
||||||
@ -641,7 +641,7 @@ ORDER BY level
|
|||||||
elif event.get('quota'):
|
elif event.get('quota'):
|
||||||
event_attr_col = getattr(self.event_tbl.c, event['quota'])
|
event_attr_col = getattr(self.event_tbl.c, event['quota'])
|
||||||
|
|
||||||
qry = sa.select(event_date_col, settings.CK_FUNC[analysis](event_attr_col).label('values')) \
|
qry = sa.select(event_date_col,e_account_id_col, settings.CK_FUNC[analysis](event_attr_col).label('values')) \
|
||||||
.where(and_(*where)) \
|
.where(and_(*where)) \
|
||||||
.group_by(event_date_col, *self.groupby, e_account_id_col)
|
.group_by(event_date_col, *self.groupby, e_account_id_col)
|
||||||
sql = str(qry.compile(compile_kwargs={"literal_binds": True}))
|
sql = str(qry.compile(compile_kwargs={"literal_binds": True}))
|
||||||
|
Loading…
Reference in New Issue
Block a user