首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django查询相关字段计数

Django查询相关字段计数
EN

Stack Overflow用户
提问于 2011-06-30 02:57:25
回答 3查看 34.2K关注 0票数 73

我有一个应用程序,用户可以创建页面。我想运行一个简单的DB查询,返回有多少用户创建了超过2个页面。

这基本上就是我想要做的,但这当然不是正确的方法:

代码语言:javascript
运行
复制
User.objects.select_related('page__gte=2').count()

我遗漏了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-30 03:05:41

您应该使用aggregates

代码语言:javascript
运行
复制
from django.db.models import Count
User.objects.annotate(page_count=Count('page')).filter(page_count__gte=2).count()
票数 137
EN

Stack Overflow用户

发布于 2017-06-24 13:59:31

在我的例子中,我没有像other answer那样使用last .count(),它也工作得很好。

代码语言:javascript
运行
复制
from django.db.models import Count

User.objects.annotate( our_param=Count("all_comments")).filter(our_param__gt=12)
票数 3
EN

Stack Overflow用户

发布于 2021-04-04 05:17:55

在django.db.models方法中使用aggregate()函数!这非常有用,并且不会真正与其他注释聚合列相提并论。*在计算的最后一步使用aggregate(),它会将您的查询集转换为dict。

下面是我使用它们的代码片段。

代码语言:javascript
运行
复制
cnt = q.values("person__year_of_birth").filter(person__year_of_birth__lte=year_interval_10)\
               .filter(person__year_of_birth__gt=year_interval_10-10)\
               .annotate(group_cnt=Count("visit_occurrence_id")).aggregate(Sum("group_cnt"))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6525771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档