📜  django queryset group by - Python (1)

📅  最后修改于: 2023-12-03 15:14:43.384000             🧑  作者: Mango

Django Queryset Group By

在 Django 中,QuerySet 是用于与数据库交互的对象。要使用 QuerySet 进行分组操作,可以使用 .annotate() 方法和聚合函数。

以下是一个使用 Django QuerySet 进行分组的示例:

from django.db.models import Count

# 使用 annotate() 方法和聚合函数 Count 进行分组
queryset = MyModel.objects.values('field1').annotate(count=Count('field1'))

# 打印结果
for obj in queryset:
    print(f"{obj['field1']}: {obj['count']}")

上述代码将分组查询 MyModel 模型中的 field1 字段,并计算每个分组中的行数。结果将会是一个 QuerySet,其中每个对象都具有 field1count 属性。

使用以上代码片段,可以按字段对 QuerySet 进行分组,然后对每个分组应用所需的聚合函数(如 Count、Sum、Avg 等)。

同时,你也可以进一步使用其他聚合函数对分组后的结果进行更复杂的操作。

请注意,上述代码中的 MyModel 应该替换为你的实际模型名称,field1 应该替换为你要分组的字段名称。

希望这个介绍对你有帮助!