Ce que j'essaie de faire c'est de calculer le pourcentage de amount
pour chaque jour de la semaine, je sais comment le faire en deux requêtes, mais je me demande s'il existe un moyen de le faire en une seule ?
Par exemple, si j'ai le modèle :
class DailyAmount(models.Model):
date = models.DateField()
amount = models.DecimalField()
Je peux obtenir les pourcentages pour chaque jour de la semaine en deux requêtes comme suit :
total_amount = models.DailyAmount.objects.all().aggregate(total=Sum("amount"))["amount"]
result = models.DailyAmount.objects.all().annotate(
weekday=ExtractWeekDay("date")
).values("weekday").annotate(
percentage=ExpressionWrapper(
Sum("amount") * 100.0 / total_amount,
output_field=DecimalField()
)
)
Y a-t-il un moyen de les combiner ? J'ai examiné les deux Subquery
y Window
mais je n'arrive à faire fonctionner ni l'un ni l'autre et je suis sûr que je rate quelque chose.