我有带有 City 和 Age 字段的 People 模型。我需要计算每个城市的人数,按 3 个不同的年龄范围 < 20、20 到 50 和 > 50 进行细分。我需要在一个 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 唯一的解决方案就足够了。