【问题标题】:flask-sqlalchemy max value of columnflask-sqlalchemy 列的最大值
【发布时间】:2014-04-14 18:41:25
【问题描述】:

假设我有一个这样的用户模型

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = SQLAlchemy(app)


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    email = db.Column(db.String(120), unique=True)
    numLogins = db.Column(db.Integer)

    def __init__(self, username, email):
        self.username = username
        self.email = email

    def __repr__(self):
        return '<User %r>' % self.username

如何查询登录次数最多的用户的记录?

【问题讨论】:

    标签: python sqlalchemy flask flask-sqlalchemy


    【解决方案1】:

    您可以通过numLogins 订购并获取第一个结果,但如果多人拥有相同的号码,这将不起作用。相反,找到最大数量,然后找到具有该数量的所有用户。

    from sqlalchemy import func
    
    max_logins = db.session.query(func.max(User.numLogins)).scalar()
    users = db.session.query(User).filter(User.numLogins == max_logins).all()
    

    您可以将其减少为一个查询。

    sub = db.session.query(func.max(User.numLogins).label('ml')).subquery()
    users = db.session.query(User).join(sub, sub.c.ml == User.numLogins).all()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-21
      • 2018-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多