首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过.annotate()执行Django GROUP_BY

通过.annotate()执行Django GROUP_BY
EN

Stack Overflow用户
提问于 2012-02-26 22:44:43
回答 1查看 376关注 0票数 0

我有包含字段customer_id和其他一些字段的表invoices。我需要选择购买计数,由每个用户采取。在SQL中,它应该如下所示:

代码语言:javascript
复制
SELECT username, COUNT('customer_id') FROM `invoices`
LEFT JOIN `auth_user` ON `auth_user`.id =  `invoices`.customer_id
GROUP BY `customer_id`, username

在Django中,我尝试:

代码语言:javascript
复制
Invoice.objects.annotate(buy_count=Count('customer')).all()

但此代码按invoices.id而不是invoices.customer_id进行分组,并返回错误的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-26 22:47:03

我认为你应该把它扭转过来,比如:

代码语言:javascript
复制
Customer.objects.annotate(buy_count=Count('invoice')).all()

在那里,您将获得一个客户列表,其中包含他们的发票数量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9454012

复制
相关文章

相似问题

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