最接近于Django中的SUM

时间:2014-09-15 22:15:01

标签: python sql django

我有以下SQL查询:

select SUM(royalty_price*conversion_to_usd)from sales_raw where date='2012-06-01'

我能在django中得到的最接近的是:

sum(SalesRaw.objects.extra(
        select={'result': 'royalty_price * conversion_to_usd'}
    ).values_list('result', flat=True))

有更简单的方法吗?

2 个答案:

答案 0 :(得分:1)

sha256question回答,您可以执行以下操作(未经测试):

from django.db.models import Sum

result = SalesRaw.objects.filter(date='2012-06-01') \
    .aggregate(result=Sum('royalty_price', field='royalty_price*conversion_to_usd'))['result']

答案 1 :(得分:1)

from django.db.models import Manager
result = Manager.raw(u"""select SUM(royalty_price*conversion_to_usd)from sales_raw where date='2012-06-01'""")

请注意django不会阻止你using SQL,为什么不这样做呢?