如何对列的值进行分组,并在Django中找到组的最大值?

如何对列的值进行分组,并在Django中找到组的最大值?,django,django-models,django-queryset,django-orm,Django,Django Models,Django Queryset,Django Orm,假设我有一个名为item_type的列,其中包含诸如牛仔裤、裤子、t恤等值 如何对该列的值计数进行分组,并从组中找出最大值 我正在运行下面的查询以获取分组 Item.objects.values'Item\u type'。annotatetotal=Count'Item\u type'。按'Item\u type'排序 其中Item是我的型号名称。 但是,这会将分组列表作为列表字典返回,但我需要这些分组的最大计数 这是通过我的HTML模板返回的内容: {'item_type': 'jeans'

假设我有一个名为item_type的列,其中包含诸如牛仔裤、裤子、t恤等值

如何对该列的值计数进行分组,并从组中找出最大值

我正在运行下面的查询以获取分组 Item.objects.values'Item\u type'。annotatetotal=Count'Item\u type'。按'Item\u type'排序 其中Item是我的型号名称。

但是,这会将分组列表作为列表字典返回,但我需要这些分组的最大计数

这是通过我的HTML模板返回的内容:

{'item_type': 'jeans', 'total': 250}
{'item_type': 'shirts', 'total': 350}
{'item_type': 'track-pants', 'total': 502}
{'item_type': 'trousers', 'total': 136}
{'item_type': 'tshirts', 'total': 450}
我如何检索这个:{'item_type':'track pants','total':502}


此外,是否有方法将最大值提取为变量?基本上,我想要关键项目类型的值,即track pants,与total的值相同,在本例中为502。

您可以使用带注释的total in order\u by语句。您可以按计数订购并获得第一项,如下所示:

Item.objects.values('item_type').annotate(total = Count('item_type')).order_by('-total')[0]

只需过滤查询集:Item.objects.values'Item\u type'.annotatetotal=Count'Item\u type'.filteritem\u type='track-pants'.order\u by'Item\u type'@R.García我不知道最大值是多少,所以我不能简单地过滤结果。我想知道如何提取最大值,不管它是什么。好吧,所以我求助于编写一个自定义SQL查询:cursor。执行'SELECT maxmycount,item\u type FROM SELECT item\u type,COUNTitem\u type mycount FROM recommender\u item GROUP BY item\u type',返回一个502格式的元组,我希望能有一个有效的方法来为我所有的专栏做这件事,例如颜色、适合度等。啊,我尝试过这个方法,但我使用了total作为变量,而不是用引号括起来。试过这个,效果很好!谢谢