【发布时间】:2013-11-02 11:29:31
【问题描述】:
所以我正在尝试汇总考试数据,并且由于数据库位于另一台服务器上,因此我正在尝试将其减少到尽可能少的数据库调用。
我有这个模型(如果重要的话,其对应的表在 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() 发送另一个查询,但我真的希望在同一个聚合上同时获得总计数和通过计数。有什么想法吗?
【问题讨论】:
标签: mysql sql django python-2.7 django-models