2 つの列の集計値を取得する必要があります。したがって、最初にそれらをまとめてから、それらを取得しsum()
ます。以下のコードは当然機能しません。これは説明のためのものです。
それはどういうわけか可能ですか、生のSQLを使用する必要がありますか?
SomeModel.objects
.filter(**something)
.aggregate(Sum('one_column' * 'another_col'))
2 つの列の集計値を取得する必要があります。したがって、最初にそれらをまとめてから、それらを取得しsum()
ます。以下のコードは当然機能しません。これは説明のためのものです。
それはどういうわけか可能ですか、生のSQLを使用する必要がありますか?
SomeModel.objects
.filter(**something)
.aggregate(Sum('one_column' * 'another_col'))
extra()を使用すると、それほど多くの生の SQL は必要ありません。
obj = SomeModel.objects.filter(**something).extra(
select = {'total': 'SUM(one_column * another_column)'},
)
ここで答えたようにhttps://stackoverflow.com/a/36024089/4614802 正しい解決策は、django のバージョンによって異なります。
.aggregate(Sum('field1', field="field1*field2"))
.aggregate(Sum(F('field1')*F('field2'))