筛选出 SQAlchemy 查询,group_by基于列值> 0



我正试图过滤掉这个SQLAlchemy查询,只返回avg_3d_perf>0

以下是我正在使用的查询:

query = query.with_entities(func.max(Signals_light.id).label('id'),Signals_light.symbol,func.max(Signals_light.close).label('close'),func.max(Signals_light.volume).label('volume'),func.max(Signals_light
.total_change).label('total_change'),func.max(Signals_light.strength).label('strength'),func.max(Signals_light.created_at).label('created_at'),func.max(Signals_light.window_mins).label('window_mins'),
func.max(Signals_light.pattern).label('pattern'),func.max(Signals_light.pattern_type).label('pattern_type'),func.max(Signals_light.sentiment).label('sentiment'),func.avg(func.nullif(Signals_light.avg_3d_perf,0)).label('avg_3d_perf'),
func.count(Signals_light.symbol).label('signals_count')).group_by(Signals_light.symbol)

我所需要做的就是过滤上面这个查询的结果,只保留avg_3d_Perf>0

我尝试在这个大型查询上使用query = query.filter(avg_3d_Perf > 0).all()之类的语句,但我认为我需要以不同的方式应用这个过滤器。

我还尝试将.having(avg_3d_perf > 0)添加到查询的末尾,但也不起作用。

在主查询后添加query = query.having(func.avg(func.nullif(Signals_light.avg_3d_perf,0)) > 0)解决了我的问题。

相关内容

  • 没有找到相关文章

最新更新