Django вопрос аннотирования группы запросов - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь выполнить следующий запрос с помощью Django ORM:

Select SUM("carros_gasto"."monto"), extract('week' from fecha) as week
From carros_gasto
group by week

, поэтому я получаю следующие результаты:

enter image description here

В django ORM я пробовал следующий набор запросов:

Gasto.objects.all().annotate(week=ExtractWeek('fecha')).values('week').annotate(Sum('monto'))

, и я получаю следующие результаты:

<QuerySet [{'week': 11, 'monto__sum': Decimal('100.00')}, {'week': 12, 'monto__sum': Decimal('100.00')}, {'week': 12, 'monto__sum': Decimal('300.00')}, {'week': 12, 'monto__sum': Decimal('1200.00')}]>

группировка не работает как ожидается.

Это запрос, который я вижу за кулисами в django:

SELECT EXTRACT('week' FROM "carros_gasto"."fecha") AS "week", SUM("carros_gasto"."monto") AS "monto__sum" FROM "carros_gasto" GROUP BY EXTRACT('week' FROM "carros_gasto"."fecha"), "carros_gasto"."fecha" ORDER BY "carros_gasto"."fecha" ASC

Я вижу, что группировка по неделям и 'fecha' вместо просто недели.

Примечание: я использую PostgreSQL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...