models.py 里这么定义的
class Var(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(20))
time = db.Column(db.Integer)
......
现在假设有这么几个数据
| id | name | time |
| 1 | a | 1500016227 |
| 2 | a | 1500016237 |
| 3 | b | 1500016227 |
| 4 | b | 1500016237 |
| 5 | c | 1500016216 |
| 6 | c | 1500016226 |
原来单独获得某一个 name 的最新几条,返回不同 name 就多次查询。
model = Var.query.filter_by(name).order_by(Var.time.desc()).limit(1).all()
现在需要同时获得几个 name 的最新几条,比如上面的数据中,同时获得 b 和 c 的最新一条数据,应该让其返回 id 为 4 和 6 两条。
试了 distinct 和 group_by,前面只能写成 db.session.query(Var.name).group_by(Var.name),这样还得再循环单独查询后添加到列表里去。请问有没有什么好的方法?