首页 > 解决方案 > 使用 django orm 加入和聚合

问题描述

我有两个表用户和购买

购买表有列 user purchase_total

并且用户表有列 userid 和 username

在这里我想做内部连接以找到每个用户的总购买量

我需要如何在用户和购买之间进行内部连接并聚合以找到每个给定用户的总购买量。使用 django ORM 查询

下面是我会做这种类型的连接的查询:

select user.* sum(purchase_total) AS 从用户内部购买的总购买量在 purchase.id = user.id 上购买

如何使用它创建 django orm 查询。

标签: sqldjangodjango-orm

解决方案


假设您的购买模型具有如下关系:

class Purchase(models.Model):
    user = models.ForiegnKey(User, related_name='purchases')

然后你可以像这样进行连接和聚合:

from django.db.models import Sum

User.objects.annotate(total_purchase=Sum('purchases'))

有关更多信息,您可以查看此documentation


推荐阅读