以下查詢我很樂意在django中完成,理想情況下不使用迭代。我只是希望數據庫調用返回下面查詢所表示的結果。不幸的是根據the docs這似乎不可能;只有像Avg
,Max
和Min
等一般功能可用。目前我使用Django 1.4,但我很高興地從Django的1.8重寫的東西(因此文檔頁面;我聽說1.8做了很多這些東西比1.4好得多)如何在django的sql查詢中做一般的數學運算?
select sum(c.attr1 * fs.attr2)/ sum(c.attr1) from fancyStatistics as fs
left join superData s on fs.super_id=s.id
left join crazyData c on s.crazy_id=c.id;
注:
直接在django中做這件事的主要原因是,如果我們想將我們的數據庫從MySQL更改爲更適合django的東西,最好不要重寫所有查詢。