我想要使用 Django ORM 聚合结果。示例表结构为:
sample_table
| **id | user_id | viewed | likes | abc** |
| 1 | 123 | 1 | 1 | 0.1258965 |
| 2 | 222 | 0 | 1 | 0.0004585 |
| 3 | 123 | 0 | 0 | 0.0025802 |
| 4 | 123 | 1 | 1 | 0.2500245 |
我需要根据user_id
获得结果,例如
[user_id, total viewd, total likes, total abc]
最佳答案
由于您希望对每个用户的值进行分组,因此您必须对 User
模型进行过滤,并注释
每一行以包含聚合。
假设 sample_table
具有模型 Sample
和 User
的外键,您可以执行以下操作:
from django.db.models import Sum
User.objects.annotate(total_viewed=Sum('sample__viewed'),
total_likes=Sum('sample__likes'),
total_abc=Sum('sample__abc'))
每个用户行还将包含字段 total_viewed
、total_likes
和 total_abc
。
关于python - 我如何在 django 中使用聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23101836/