用django计算两列之间的差异

问题描述

我有一个包含以下数据的表格。

table_1

col_a col_b
1 2
0 1
2 0

我想用 b 添加 a。我可以用注释做到这一点:

table_1.objects.annotate(diff=F('col_a ')+F('col_b '))

我不能做的是应用过滤器。 例子。 计算 col_a + col_b 大于 2 的情况:

预期结果:1

你能帮我吗?

解决方法

可以对diff进行过滤,然后统计记录数:

from django.db.models import F

table_1.objects.annotate(
    diff=F('col_a')+F('col_b')
).filter(
    diff__gt=2
).count()