从 Django 中的查询中获取最高 3 条记录

Get highest 3 count records from the query in django

我想从用户 table 那里得到所有相同记录的总和。下面给出了我正在做的事情

 result = Patient.objects.filter(active=1).values('name').order_by().annotate(Count('name'))

使用这个我得到如下结果:

<QuerySet [{'name': 'ankita', 'name_count': 9}, {'name': 'preety', {'count': '8', 'name': "neha'}]>

它返回我的名字和计数。它是完美的。

如何获得位置计数的前 3 个结果?

您可以将 order_by(...) 与 Python 的 切片运算符[ 一起使用=28=]作为


result = User.objects.filter(active=1) \
             .values('location__state') \
             <b>.annotate(count_loc=Count('location')) \
             .order_by('-count_loc')[:3]</b>

order_by('-count_loc') 以降序排列结果, [:3] 为您提供 前 3 个条目