zoukankan      html  css  js  c++  java
  • Django中ORM的聚合索引

    在Django中,聚合函数是通过aggregate方法实现的,aggregate方法返回的结果是一个字典

    在使用时需要先导入模块from django.db.models import Count,Avg,Max,Min,Sum

    假设有一个模型

    复制代码
    复制代码
    class Book(models.Model):
        name = models.CharField(max_length=100)
        pages = models.IntegerField()
        price = models.FloatField()
        author = models.CharField(max_length=100)
        class Meta:
            db_table='book'
    复制代码
    复制代码

    Avg:求平均值

    avgprice=Book.objects.aggregate(Avg('price'))

    print(avgprice) 打印结果为{"price__avg":23.0}

    默认的别名结构为field__方法小写,如果要自定义返回结果样式,可以将结果赋值给一个关键字参数,例如

    avgprice=Book.objects.aggregate(my_avg=Avg('price')),则打印结果为{my_avg":23.0}

    可通过print(avgprice.queries)查看系统转化为的原生sql语句(先导入from django.db import connection)

    count:获取个数,默认不去重

    bookcount = Book.objects.aggregate(book_num=Count('id'))

    在count中,如果要过滤重复值,可添加参数distinct,即book_num=Count(book_num='name',distinct=True)

    Max 和 Min:最大值和最小值

    max_price=Book.objects.aggregate(max_price=Max('price'))

    min_price=Book.objects.aggregate(min_price=Min('price'))

    Sum:总和

    sum=Book.objects.aggregate(sum_price=Sum('price'))

  • 相关阅读:
    【convertio.co】免费在线文档转化神器
    成长需熬过“四苦”
    岁月饶过谁
    致我的未来
    一定要相信自己
    奋斗的意义是什么?
    一生一世一双人,半醉半醒半浮生
    逆境中的自己
    怎样才能让人看到你呢
    2020 遇见更好的自己
  • 原文地址:https://www.cnblogs.com/jqc6/p/11817357.html
Copyright © 2011-2022 走看看