次のようなMySQLコードがあります。
SELECT
visitor AS team,
COUNT(*) AS rg,
SUM(vscore>hscore) AS rw,
SUM(vscore<hscore) AS rl
FROM `gamelog` WHERE status='Final'
AND date(start_et) BETWEEN %s AND %s GROUP BY visitor
複数のクエリを作成せずに、これをそのクエリの Django バージョンに変換しようとしています。これは可能ですか?Sum()
、およびの実行方法を読みましたがCount()
、私のように2つのフィールドを比較したい場合はうまくいかないようです。
これが私がこれまでに思いついた最高のものですが、うまくいきませんでした...
vrecord = GameLog.objects.filter(start_et__range=[start,end],visitor=i['id']
).aggregate(
Sum('vscore'>'hscore'),
Count('vscore'>'hscore'))
私も'vscore>hscore'
そこで使ってみましたが、それもうまくいきませんでした。何か案は?できるだけ少ないクエリを使用する必要があります。