我有以下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)
从sha256的question回答,您可以执行以下操作(未经测试):
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,为什么不这样做呢?