假设我有一个模型:
class People(models.Model):
name = models.CharField(max_length=200)
age = models.PositiveIntegerField()
这是它的当前数据:
name age
Bob 18
Carly 20
Steve 20
John 20
Ted 19
Judy 17
如何获得最重复的内容?因此:
name age
Carly 20
Steve 20
John 20
我无法在单个 django查询中找到该怎么做。我可以通过按年龄排序,然后找到具有最佳年龄的完全匹配,但这需要两个查询。
答案 0 :(得分:2)
people = People.objects.extra(where=['age=(select max(age) from app_people)'])
或
people = People.objects.extra(where=['age=(select max(age) from {})'.format(
People._meta.db_table
)])
答案 1 :(得分:1)
People.objects.filter(age=People.objects.order_by('-age')[0].age)
但它的两个问题分为一个