zoukankan      html  css  js  c++  java
  • Django_聚合与分组查询

    聚合查询:aggregate(),返回值为一个字典。

    # 导入功能函数
    from django.db.models import Avg, Max, Min, Count
    # 查询全部书籍的平均价格,最大价格,最小价格,价格总和,可以自定义字典的键:aggregate(wdc=Avg("price"))
    ret = models.Book.objects.all().aggregate(Avg("price"), Max("price"), Min("price"), Count("price"))
    print(ret)

    结果:

     分组查询:annotate(),返回值是一个对象。

      单表:

    from django.db.models import Avg, Max, Min, Count
    # 查询每个部门的平均薪水  values("要分组的字段").annotate(要统计的字段)
    ret = models.Wdc.objects.values("dep").annotate(Avg("salary"))
    print(ret)

    结果:

       多表:

    # 查询每一个出版社的名称以及出版的书籍个数
    from django.db.models import Avg, Max, Min, Count
    # 方式一:annotate(Count(表名__要查询的字段))
    ret = models.Publish.objects.values("name").annotate(c=Count("book__title"))
    print(ret)
    # 方式二:以主键分组,最后取出版社的名称和出版社书籍的个数。
    ret = models.Publish.objects.values("nid").annotate(c=Count("book__title")).values("name", "c")
    print(ret)

    结果:

    from django.db.models import Avg, Max, Min, Count
    # 查询每一个作者的出版的最贵的书籍价格以及作者名字。("pk")代表主键。
    ret = models.Author.objects.values("pk").annotate(c=Max("book__price")).values("name", "c")
    print(ret)

    结果:

  • 相关阅读:
    test
    结构体内存对齐
    单链表(指针的指针应用)
    C语言实现线程池
    线程私有数据和pthread_once
    fcntl函数
    同构树
    动态规划经典题
    DP--方格取数问题
    动态规划的基本模型
  • 原文地址:https://www.cnblogs.com/wangdianchao/p/12741846.html
Copyright © 2011-2022 走看看