Mam kwerendy podobny do następującego:Kwerenda Django SUM?
SELECT SUM(ISNULL(table.name)) FROM table
Jak to przekłada się na SUM
queryset w Django? (Tj Co operacja xyz
to przekłada się w coś podobnego MyModel.objects.xyz()
?)
Mam kwerendy podobny do następującego:Kwerenda Django SUM?
SELECT SUM(ISNULL(table.name)) FROM table
Jak to przekłada się na SUM
queryset w Django? (Tj Co operacja xyz
to przekłada się w coś podobnego MyModel.objects.xyz()
?)
Update: Poniższe uwzględnia aspekt IsNull oryginalnego zapytania:
from django.db.models import Sum
ModelName.objects.filter(field_name__isnull=True).aggregate(Sum('field_name'))
szukasz funkcji agregacji Sum, który działa w następujący sposób:
ModelName.objects.aggregate(Sum('field_name'))
Patrz: https://docs.djangoproject.com/en/dev/ref/models/querysets/#sum
Ah dzięki. Ale co z "ISNULL"? – Mehrdad
Myślę, że możesz to zrobić, używając filtru w zapytaniu. Nie testowałem tego, ale coś takiego powinno działać: 'ModelName.objects.filter (field_name__isnull = True) .aggregate (Sum ('field_name'))' –
pewna rzecz :) Dodałem aktualizację do mojej odpowiedzi. –
jeśli masz zaawansowany USECASE może trzeba Condit wyrażenia ational https://docs.djangoproject.com/en/1.11/ref/models/conditional-expressions/#conditional-aggregation – Pykler