【发布时间】:2020-09-06 17:10:06
【问题描述】:
我要做的是计算每个工作日amount 的百分比,我知道如何在两个查询中完成,但我想知道是否有办法在一个查询中完成?
例如,如果我有模型:
class DailyAmount(models.Model):
date = models.DateField()
amount = models.DecimalField()
我可以在两个查询中获得每个工作日的百分比金额,如下所示:
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()
)
)
有没有办法把它们结合起来?我已经查看了 Subquery 和 Window,但我都无法正常工作,而且我确定我错过了一些东西。
【问题讨论】:
标签: django django-queryset django-orm