rod*_*ixd 8 python sql django group-by django-models
我需要在Django中执行以下查询:
SELECT sum(T.width * T.height) as amount
FROM triangle T
WHERE T.type = 'normal'
GROUP BY S.color
Run Code Online (Sandbox Code Playgroud)
我怎么能用你的django ORM做到这一点?我试过这个:
Triangle.objects.filter(type='normal').\
extra(select={'total':'width*height'}).\
values('id', 'total').\
annotate(amount=Sum('total'))
Run Code Online (Sandbox Code Playgroud)
但它不起作用,我得到的错误是TOTAL不在模型中.我该如何解决?
ale*_*cxe 11
这是你可以做的:
Triangle.objects.filter(type="normal").values('color').annotate(amount=Sum('id', field="width * height")
Run Code Online (Sandbox Code Playgroud)
这将产生以下查询(为了便于阅读,我已经简化了):
SELECT color, sum(width * height) as amount
FROM triangle
WHERE type = 'normal'
GROUP BY color
Run Code Online (Sandbox Code Playgroud)
注:我认为color是的领域Triangle模型等领域.
| 归档时间: |
|
| 查看次数: |
2611 次 |
| 最近记录: |