Ich habe eine Abfrage ähnlich der folgenden:
SELECT SUM(ISNULL(table.name)) FROM table
Wie SUMübersetzt sich das in ein QuerySetin Django? dh in welche Operation xyzwird es in so etwas übersetzt MyModel.objects.xyz()?
Ich habe eine Abfrage ähnlich der folgenden:
SELECT SUM(ISNULL(table.name)) FROM table
Wie SUMübersetzt sich das in ein QuerySetin Django? dh in welche Operation xyzwird es in so etwas übersetzt MyModel.objects.xyz()?
Antworten:
Update: Im Folgenden wird der ISNULL-Aspekt der ursprünglichen Abfrage berücksichtigt:
from django.db.models import Sum
ModelName.objects.filter(field_name__isnull=True).aggregate(Sum('field_name'))
# returns {'field_name__sum': 1000} for example
Sie suchen nach der Summenaggregationsfunktion, die wie folgt funktioniert:
ModelName.objects.aggregate(Sum('field_name'))
Siehe: https://docs.djangoproject.com/de/dev/ref/models/querysets/#sum
ModelName.objects.filter(field_name__isnull=True).aggregate(Sum('field_name'))