假设我有一个名为 item_type 的列,其中包含诸如牛仔裤,裤子,T恤衫等值。
如何将该列的值计数分组并从各组中找到最大值?
我正在运行以下查询以获取分组
Item.objects.values('item_type').annotate(total = Count('item_type')).order_by('item_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}
此外,有没有一种方法可以将最大值提取为变量?基本上,我想要键 item_type 的值是 track-pants ,而 total 的值是 502 在这种情况下。
答案 0 :(得分:1)
您可以在 order_by 语句中使用带注释的总计。您可以按数量订购并获得第一件商品,如下所示:
Item.objects.values('item_type').annotate(total = Count('item_type')).order_by('-total')[0]