2011-04-14 85 views
1

我想从数据库中选择django。django中的group by和aggregate

测试有很多测试结果。

我需要选择最新的结局。

在SQL中我会用

select *,max(timeEnd) from testresult group by idTest 

,并获得很好的答案怎样才能让Django的东西都提前

感谢。

回答

1

Django中的聚合相对简单。下面是关于这个专题的文件:

http://docs.djangoproject.com/en/dev/topics/db/aggregation/

为了实现Django的查询,你可能会写类似:

from django.db.models import Max 
TestResult.objects.values('idTest').annotate(Max('timeEnd')) 
+2

但聚合函数获取值,我需要的元素 – shevski 2011-04-14 12:37:02

+0

只取出.values()部分,并返回对象:'TestResult.objects.annotate(Max('timeEnd'))' – alanjds 2013-04-05 14:03:45

+0

b没有值的部分,你如何定义组 – rtpg 2013-08-19 07:27:45

0

你甚至可以使用原始的SQL如果它变得更复杂检查this