python - flask-sqlalchemy max value of column -


lets have user model such

from flask import flask 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 

how query records user maximum logins?

you order numlogins , take first result, won't work if multiple people have same number. instead, find max number, find users number.

max_logins = db.session.query(db.func.max(user.numlogins)).scalar() users = db.session.query(user).filter(user.numlogins == max_logins).all() 

you reduce 1 query.

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

Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -