因此,我正在尝试汇总考试数据,并且由于数据库位于另一台服务器上,因此我试图将其减少到尽可能少的数据库调用。
我有这个模型(如果重要的话,其对应的表在 mySQL 数据库中):
class Exam(models.Model):
submitted = models.BooleanField(default=False)
score = models.DecimalField(default=Decimal(0))
这个查询:
>>> exam_models.Exam.objects\
... .using("exam_datebase")\
... .aggregate(average=Avg("score"),
... total=Count("submitted"))
{'average': 22.251082, 'total': 231}
我正在寻找的是一种检索通过考试数量的方法,类似于:
>>> exam_models.Exam.objects\
... .using("exam_datebase")\
... .aggregate(average=Avg("score"),
... total=Count("submitted"))
... passed=Count("score__gte=80"))
{'average': 22.251082, 'total': 231, 'passed': 42}
我知道我可以使用 发送另一个查询.filter(score__gte=80).count()
,但我真的希望在同一个聚合上同时获得总计数和传递计数。有任何想法吗?