查询以获取Django中的总计

2024-10-02 18:27:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要找到最大脂肪摄入量(总脂肪摄入量)的用户id

数据库:

id | user_id | fat_intake 
38      1         10     
39      1         15         
40      1         30         
41      1         14         
42      2         20         
43      2         30         
44      2         50        

获取最大脂肪摄入量的用户id的查询是什么

答复应当是:

Output: 
  {
    "user_id": 1,
    "total_fat_count": 69
  } 

我试过:

maxCalorie =  CalorieInfo.objects.annotate(fat_intake=Avg('fat_intake')).aggregate(Max('fat_intake'))

Tags: 用户id数据库outputobjectscountfattotal
2条回答

你可以这样做

In [27]: from django.db.models import Sum

In [28]: CalorieInfo.objects.all().values('user_id').annotate(fat_intake=Sum("fat_intake"))
Out[28]: <QuerySet [{'user_id': 1, 'fat_intake': 69}]>

In [29]:

这是正确的答案,应该对你有用

users.objects.values('user_id').annotate(total=Sum('fat_intake'))

输出是

<QuerySet [{'user_id': 1, 'total': 69}, {'user_id': 2, 'total': 100}]>

相关问题 更多 >