#django #window-functions #ranking #django-database-functions
Вопрос:
У меня есть набор запросов пользователей, после аннотирования ранга каждого пользователя с помощью функции окна Django я хочу запросить пользователя без изменения значения ранга
users_points_query = users.order_by( '-total_points' ).annotate( rank=Window( expression=Rank(), order_by=[ F('total_points').desc() ], ) )
это работает нормально, но при фильтрации по users_points_query
запросу ранг вычисляется снова, поэтому первый пользователь получит ранг 1, который основан на первой строке и так далее.