就像下面的查詢,同時和Django的一些列的支持組:可以在其他列
select sum(T.a), sum(T.b) from Table T group by T.c , T.d
,有沒有辦法在Django支持這種類型的查詢?
就像下面的查詢,同時和Django的一些列的支持組:可以在其他列
select sum(T.a), sum(T.b) from Table T group by T.c , T.d
,有沒有辦法在Django支持這種類型的查詢?
這接近於:
class Test(models.Model):
class Meta:
app_label = 'ignore'
db_table = 'T'
a = models.IntegerField()
b = models.IntegerField()
c = models.IntegerField()
d = models.IntegerField()
result = Test.objects.values('c', 'd').annotate(Sum('a'), Sum('b'))
print str(result.query)
結果與:
選擇 「T」, 「C」, 「T」, 「d」,SUM( 「T」 的 「a」。 )AS「a_ sum」,SUM(「T」,「b」)AS「b_sum」FROM「T」GROUP BY「T」。「c」,「T」。「d」,「T」。 「C」, 「T」, 「D」
爲什麼GROUP BY值重複,我不知道......
是,Django支持它,它記錄here
對我下面的工作:
>>> from django.db.models import Sum
>>> from myapp.models import T
>>> results = T.objects.values('c', 'd').annotate(Sum('a'), Sum('b'))
>>> print results.query
SELECT "myapp_t"."c", "myapp_t"."d", SUM("myapp_t"."a") AS "a__sum", SUM("myapp_t"."b") AS "b__sum" FROM "myapp_t" GROUP BY "myapp_t"."c", "myapp_t"."d"
非常感謝〜 – Xiwen 2011-04-01 17:52:02