sqlalchemy - How to find position of User in query? -
how find position of user in query ? have ( using mysql)
session.query(usermodel).order_by(desc(usermodel.age)).all() and have user id, how find position of specific id ordered array ? ( can return , iterate there uicker way solve on database level, need run fast)
database should support window functions this. raw sql query this:
select pos (select id, row_number() on (order age desc) pos user) sub sub.id = :id; in sqlalchemy:
from sqlalchemy import func, desc user_id = 42 sub = (session .query( usermodel.id, func.row_number().over(order_by=desc(usermodel.age)).label('pos')) .subquery()) pos = session.query(sub.c.pos).filter(sub.c.id==user_id).scalar() note returned index 1-based.
among popular rdbms work in postgresql, oracle, mssql, not in mysql or sqlite.
Comments
Post a Comment