Как суммировать ранги в django-orm annotate
модель
class ChampionKill(Event):
start = models.ForeignKey('self', models.CASCADE, null=True, blank=True, related_name='sequence')
damage = models.PositiveIntegerField()
damage_contribution = models.FloatField()
objects = ChampionKillManager()
manager
class ChampionKillManager(BaseManager):
def get_queryset(self):
return super().get_queryset().annotate(
length=Count('sequence'),avg_damage_contribution=Avg('sequence__damage_contribution'),
avg_interval=(
Cast(Max('sequence__time') - Min('sequence__time'), models.FloatField())
/ F('length')
),
rank_damage_contribution=Window(Rank(), order_by=F('avg_damage_contribution').desc()),
rank_interval=Window(Rank(), order_by=F('avg_interval').asc()),
# total_rank_score=(F('rank_damage_contribution') + F('rank_interval')),
# rank_total=Window(Rank(), order_by=F('total_rank_score').asc()),
)
Когда я добавляю "total_rank_score" и "rank_total" в annotete, я получаю следующую ошибку. (Я использую sqlite)
django.db.utils.OperationalError: неправильное использование оконной функции RANK()
Я хочу создать значение "total_rank_score" путем суммирования значения "rank_damage_contribution" и значения "rank_interval". Мне нужен совет.