我想查询数据库并获取数据库表中出现次数最多的id数据。
story table
id story_name
1 this is one
2 this is two
story_story_table
id story_id
1 1
2 1
3 1
4 2
5 3
现在id 1发生率最高。首先找到最高出现次数,然后根据此ID获取数据。使用django
答案 0 :(得分:0)
使用内置API的django&#ORM,您可以找到最高的出现次数。
unique_fields = ['story_id','story_name_id']
duplicates = (Model.objects.values(*unique_fields)
.annotate(max_id=models.Max('id'),
count_id=models.Count('id'))
.filter(count_id__gt=1)
.order_by())
这将根据给定字段提供重复记录,并且最高出现时您只需使用len(duplicates)
<强>编辑:强>
highest_occured = (Model.objects.values(*unique_fields)
.annotate(max_id=models.Max('id'),
count_id=models.Count('id'))
.filter(count_id=models.Max(count_id))
.order_by())
我希望这会有所帮助。 :)