1
我有一个名为'speed'的表,它具有一个用户行的外键和一个名为'speed'的整数字段。我想要做的是获得独特用户的最高速度。例如:使用Django选择和排序唯一外键
如果速度包含
id | speed | user_id |
1 | 40 | 1 |
2 | 50 | 1 |
3 | 10 | 2 |
它将返回ID的2和3。这可能使用Django的数据库API?
我有一个名为'speed'的表,它具有一个用户行的外键和一个名为'speed'的整数字段。我想要做的是获得独特用户的最高速度。例如:使用Django选择和排序唯一外键
如果速度包含
id | speed | user_id |
1 | 40 | 1 |
2 | 50 | 1 |
3 | 10 | 2 |
它将返回ID的2和3。这可能使用Django的数据库API?
这是不太你问什么,但给你的用户ID和它们相关联的最大速度列表:
from django.db.models import Max
Speed.objects.values_list('user').annotate(Max('speed'))
这可能是更有益的:用户对象与它们的最大速度列表:
评论好后User.objects.all().annotate(Max('speed__speed'))
编辑,你不显示其中时间是从哪里来的,但假设它是在速度模型的另一个领域,它仍然是相当简单:
Speed.objects.filter(time__gte=fiveminutesago).values_list('user').annotate(Max('speed'))
唯一的问题是我也希望限制它。我有一个这样做的功能,但我希望在最后五分钟内获得最高速度的另一个功能。我不认为我可以用你刚才给出的方法做到这一点。 – 2011-05-05 18:44:39
几乎在那里。我最不喜欢的是获得Speed对象的id以及用户名。它现在按用户进行汇总,但只有用户值可用。任何方式来做到这一点? – 2011-05-05 19:54:50
感谢您的帮助! – 2011-05-05 19:54:59