python - 在 SQLAlchemy 中使用 distinct 后更改 order_by
问题描述
我正在尝试创建一个查询,该查询显示按值“difference_absolute”排序的结果,并且在“company_id”上是唯一的(因为将存在多个company_id,并且在结果中我只想显示每个company_id 一次)。为此,我尝试使用 ORDER_BY 和 DISTINCT:
db.session.query(Ranking).\
filter(Ranking.timestamp > last7days).\
group_by(Ranking.company_id, Ranking.id).\
distinct(Ranking.company_id).\
order_by(Ranking.difference_absolute).\
limit(10)
但是,事实证明您只能对您在 DISTINCT 中使用的项目执行 ORDER_BY,我无法弄清楚如何执行此操作,然后更改顺序。
任何指针?
解决方案
感谢@AdamKG 的指针,我得到了它使用以下查询:
Ranking.query.distinct(Ranking.company_id).\
filter(Ranking.timestamp > last7days).\
from_self().\
order_by(Ranking.difference_absolute.desc()).\
limit(10)
我会更多地阅读 from_self() 。
推荐阅读
- python - 用于时间序列预测的 Keras LSTM 神经网络在模型拟合期间显示 nan
- autohotkey - Photoshop 在 AHK 之前获取输入
- reactjs - 尝试将 redux 操作作为道具传递给子组件
- amazon-web-services - 自定义路径的别名
- javascript - 客户端JS向nodejs express服务器发送数据并响应
- twitter-bootstrap - Vue js 似乎打破了引导分页
- ios - 如何在按钮单击以发布数据 Swift 时检查 TableviewCell 值是否为空
- angularjs - 如何在amcharts的点击栏上显示模态?
- r - 如何了解在 R 中编写回归包的标准?
- c# - IConfiguration 不包含 AppSettings