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")
    

     

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值