可以通过某些列同时支持django对其他列的总和

Xiw*_*wen 4 python django

就像下面的查询:

select sum(T.a), sum(T.b) from Table T group by T.c , T.d
Run Code Online (Sandbox Code Playgroud)

django有什么办法支持这种查询吗?

小智 5

这很接近:

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)
Run Code Online (Sandbox Code Playgroud)

结果:

SELECT"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值重复,我不知道......