Аннотировать каждые некоторые данные в наборе запросов - PullRequest
0 голосов
/ 17 апреля 2020

Я разрабатываю с Django и ищу набор запросов, который каким-то образом может выполнить эту операцию: Набор запросов, который возвращает 10000 объектов, также может вычислить среднее значение для каждой 1000 из 10000. код, который я ищу, поскольку мои знания выглядят так:

queryset=Model.objects.annotate(part=func(get 1000 objecs), average=Avg('Values'))

Я знаю, что annotate просто вычисляет итоговые значения для каждого элемента в наборе запросов, но в моем случае мне просто нужно сделать это для каждого нарезанного пока что часть запроса.

1 Ответ

0 голосов
/ 17 апреля 2020

Возможно, вы можете использовать для этого функцию Window:

from django.db.models import Avg, RowRange, Window

queryset=Model.objects.annotate(
    avg=Window(
        expression=Avg('Values'), 
        frame=RowRange(start=-500,end=500)
    )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...