django - 查询集上的 Django 总和
问题描述
我在 django 中有一个查询集,条件如下:
query_set = MyModel.objects.annotate(TWWByRuns=(
Case(
When(Q(toss_winner=F('winner')) & Q(win_by_runs=0), then=1),
output_field=FloatField(), default=0)
)
).values('TWWByRuns')
我想使用 django 内置的 sum 函数query_set
在 when 中的值等于 1 时添加then=1
。我知道在没有条件的情况下使用 sum 函数,但是因为我有条件,我应该在哪里使用 sum 函数query_set
?
解决方案
在这种特定情况下,计数更有意义:
MyModel.objects.filter(toss_winner=F('winner'), win_by_runs=0).count()
因此,我们在这里简单地检查有多少MyModel
记录满足给定条件。
推荐阅读
- ruby-on-rails - 如何使用 Active Record 回滚特定数据库
- java - Tomcat 记住上一个会话中的类
- plot - 散景图填充半圆
- azure-devops - Azure DevOps:在远程 YAML 模板中插入本地 YAML 模板
- python - 如果文件夹已经存在,如何跳过 os.makedirs?
- javascript - Promises.all 在单个 Promise 上返回对象而不是数组 - 不能在不检查数组的情况下对返回的数据使用 forEach
- python - 在 Python 中将递归函数结果保存为数组
- c++ - 函数的隐藏/锚定参数?
- python - 如何使用 Python 为给定总和生成加数?
- sql - 有一个包含一些重复行的表,希望为每个 ID 按顺序编号