You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中对数据表两列求和后过滤并统计符合条件记录数的实现

实现方式1:基于现有annotate逻辑扩展

你已经完成了两列求和的annotate操作,只需在后续链式调用filter()筛选求和结果,再调用count()统计总数即可,代码如下:

from django.db.models import F

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

执行后result_count的值就是你预期的1。

实现方式2:省略annotate步骤(Django 3.2+ 支持)

如果不需要复用求和得到的diff字段,也可以直接在filter中写计算逻辑,减少一步操作:

from django.db.models import F

result_count = table_1.objects.filter(
    (F('col_a') + F('col_b')) > 2
).count()

两种方式最终返回的统计结果完全一致,你可以根据自己的Django版本和业务场景选择。

内容的提问来源于stack exchange,提问作者Jeffersom da Silva Costa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 05:57:00