City フィールドと Age フィールドを持つ People モデルがあります。20 歳未満、20 歳から 50 歳、50 歳以上の 3 つの異なる年齢範囲で区切られた各都市の人数を取得する必要があります。これを 1 つの SQL クエリで行う必要があります。
People.objects.extra(select={'young':'if(age < 20, 1, 0)',
'med':'if (age > 20 and age < 50, 1, 0)',
'old':'if (age > 50, 1, 0)'}).\
values('city').\
annotate(sum_young=Sum('young'),
sum_med=Sum('med'),
sum_old=Sum('old'))
これは機能していません。注釈は計算フィールドでは実行できないようです。
MySQL のみのソリューションで十分です。