Я пытаюсь использовать функцию агрегирования Django SUM в annotate
вместе с оконными функциями Django.Проблема в том, что когда я пытаюсь использовать функцию агрегирования в том же поле модели, что и в предыдущем псевдониме аннотации, Django выдает ошибку window functions are not allowed in GROUP BY
.Я предоставляю запрос ниже.
queryset = UserEcosystemApplicationUsage.objects.filter(
user_app__user=child,
from_datetime__gte=from_datetime,
to_datetime__lte=to_datetime
).annotate(
day_duration_seconds=Epoch(Window(
expression=Sum('duration_time'),
partition_by=[F('name'), F('date')]
)),
period_duration_seconds=Epoch(Window(
expression=Sum('duration_time'),
partition_by=[F('name')],
)),
# duration_total_seconds=Epoch(Window(
# expression=Sum('duration_time')
# )),
duration_total_seconds=Sum('duration_time')
).values(
'duration_total_seconds'
).distinct()
Прямо сейчас, когда закомментированная часть запроса используется вместо Sum(duration_time)
, тогда все в порядке, но я ожидаю, что Sum('duration_time')
также будет работать.Не могли бы вы точно указать, что я делаю неправильно или представить ссылки на документы, которые объясняют, что происходит?