Django—模型—数据查询(统计查询)

  • 统计查询


    def handle_group(request):
        from django.db.models import Max,Min,Avg,Sum,Count
        # 统计函数用法
        # select max(uid) from user
        # uid = User.objects.aggregate(Max('uid'))
        # print(uid,type(uid))
    
        # 分组
        # select sex,count(uid) from user group by sex
        # data = User.objects.values('sex').annotate(Count('uid'))
        # select sex,count(uid) from user group by sex having sex=1
        # data = User.objects.values('sex').annotate(Count('uid')).filter(sex=1)
    
        # Q对象:构造逻辑或、逻辑非
        # 查询uid>30或者sex=1
    
        # data = User.objects.filter(Q(uid__gt=30)|Q(sex=1))  # | 逻辑或
    
        # data = User.objects.filter(~Q(uid__gt=30))  # | 逻辑非
        # data = User.objects.filter(~Q(sex=1))  # 不能处理null
    
        # print(data)
        #
        # for user in data:
        #     print(user)
    
        # F对象: 把sex看成User的一个列名
        # data = User.objects.filter(uid=F('sex'))
    
    
        # print(data)
    
         # 复杂查询
        # pub = Publisher.objects.filter(books__bname='特不靠谱')
        # pub = Publisher.objects.filter(books__id=3)
        # print(pub[0].pname)
    
    
         # 嵌套查询,data只能返回一个字段
        # data = User.objects.filter(uid__gt=15,uid__lt=20).values('uid')
        # users = User.objects.filter(uid__in = data)
    
    
        return HttpResponse("group")
    
发布了180 篇原创文章 · 获赞 6 · 访问量 2320

猜你喜欢

转载自blog.csdn.net/piduocheng0577/article/details/105009950