【问题标题】:Django group by multiple column and get count of unique combinationDjango按多列分组并获取唯一组合的计数
【发布时间】:2021-06-24 20:42:55
【问题描述】:

在我的模型中有 10 个字段,其中以下四个我需要分组,

部门 城市 状态 拉链

然后获取这些值组合相同的记录数

示例 IT|波特兰|俄勒冈|11111 => 100

我尝试了注释,但它没有给我想要的结果。请指教

【问题讨论】:

    标签: django


    【解决方案1】:
    from django.db.models import Count
    
    YourModel.objects.values('department', 'city', 'state', 'zip').annotate(count=Count('id'))
    

    【讨论】:

    • 如果此模型中有默认的 Meta.ordering,您可能还需要添加一个空的order_by()
    • 为什么'id' 用在表达式Count('id') 中? id 来自哪里,它与所选模型值的组合有何关系?
    • id 是 Django 中默认的主键字段。执行Count('id'),意味着对该表中的所有行进行计数,因为每个 id 都是唯一的。
    猜你喜欢
    • 2011-03-13
    • 2017-05-09
    • 2021-10-30
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    相关资源
    最近更新 更多