Итак, у меня есть приложение Django, которое обрабатывает результаты теста, и я пытаюсь найти средний балл для определенной оценки.Я думаю, что это будет работать:
e = Exam.objects.all()
total = e.count()
median = int(round(total / 2))
median_exam = Exam.objects.filter(assessment=assessment.id).order_by('score')[median:1]
median_score = median_exam.score
Но он всегда возвращает пустой список.Я могу получить желаемый результат с этим:
e = Exam.objects.all()
total = e.count()
median = int(round(total / 2))
exams = Exam.objects.filter(assessment=assessment.id).order_by('score')
median_score = median_exam[median].score
Я бы просто предпочел не запрашивать весь набор экзаменов.Я думал о том, чтобы просто написать необработанный MySQL-запрос, который выглядит примерно так:
SELECT score FROM assess_exam WHERE assessment_id = 5 ORDER BY score LIMIT 690,1
Но, если возможно, я бы хотел остаться в рамках Django ORM.В основном, меня просто беспокоит, что я не могу использовать order_by с фильтром и лимитом.Есть идеи?