如何在Django中获取具有条件的列的“总和”

时间:2017-09-08 12:42:42

标签: django python-2.7 postgresql django-models

我正在使用django 1.11和postgresql 9.5。 在视图中,我正在读取文件并将数据插入数据库。

表结构就是这样..

 id           | integer                  
 user_id      | integer  
 percentage   | numeric(3,2)

插入数据后,我有这样的表格。

id  user_id percentage
1   1       9
2   1       50
3   1       4
4   2       12
5   2       23
6   3       46
7   3       33  
8   4       87

现在我想找到每个用户的百分比总和,例如,

user-1 = 63
user-2 = 35
user-3 = 79
user-4 = 87

我浏览了文档,发现聚合查询,如

<modelname>.objects.aggregate(Sum('percentage'))

但是,这将给出整列的总和,我想要个人用户的总和。如何实现。

1 个答案:

答案 0 :(得分:1)

我认为你需要使用注释

<modelname>.objects.values('user').annotate(percentage=Sum('percentage')).order_by()