我正在尝试创建一个查询,该查询显示按值'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,而我不知道该怎么做以及更改顺序之后。
有指针吗?
答案 0 :(得分:0)
感谢@AdamKG提供的指针,我将其与以下查询一起使用:
Ranking.query.distinct(Ranking.company_id).\
filter(Ranking.timestamp > last7days).\
from_self().\
order_by(Ranking.difference_absolute.desc()).\
limit(10)
我将进一步阅读from_self()。