2つの列の集計値を取得する必要があります。だから最初に複数のものを一緒にしてからsum()
を入手してください。以下のコードは自然に動作しませんが、これは説明のためだけのものです。Django:2つの乗算された列の集計値を得る
これはどういうことですか、生のSQLを使うべきですか?
SomeModel.objects
.filter(**something)
.aggregate(Sum('one_column' * 'another_col'))
2つの列の集計値を取得する必要があります。だから最初に複数のものを一緒にしてからsum()
を入手してください。以下のコードは自然に動作しませんが、これは説明のためだけのものです。Django:2つの乗算された列の集計値を得る
これはどういうことですか、生の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)'},
)
これはスパルタです。これは正しくここに答えた
{{ queryset.0.total }}
:Django Aggregation: Summation of Multiplication of two fields
形式は次のとおりです。
agg = Task.objects.all().aggregate(total=Sum('field1', field="field1*field2"))
私がここに答えたのでhttps://stackoverflow.com/a/36024089/4614802 正しい解決方法はdjangoのバージョンに依存します。ジャンゴ> = 1.8を使用.aggregate(Sum(F('field1')*F('field2'))
についてはジャンゴ< 1.8使用.aggregate(Sum('field1', field="field1*field2"))