首页 > 其他 > 详细

[Django]模型提高部分--聚合(group by)和条件表达式

时间:2016-01-12 15:21:09      阅读:188      评论:0      收藏:0      [点我收藏+]

前言:本文以学习记录的形式发表出来,前段时间苦于照模型聚合中group by 找了很久,官方文章中没有很明确的说出group by,但在文档中有提到!!!

模型提高部分:

聚合:

LOrder.objects.values(‘com_chnl_name‘).annotate(Count(‘serv_id‘))

#相当于select count(serv_id) from LOrder group by com_chnl_name

模型高级运用条件表达式:

LOrder.objects.values(‘com_chnl_name‘).annotate(

        cdma=Sum(

     Case(When(Q(prod_offer_name__contains=‘语音CDMA‘) & Q(service_offer_name=‘订购‘),then=1),

            output_field=IntegerField())

            ),

        )

#相当于select sum(

case when prod_offer_name like’%.语音CDMA %’ and service_offer_name=‘订购‘ then 1 end)

, com_chnl_name

from LOrder

group by com_chnl_name;

该SQL语句也算是SQL中的中级部分. 其中&相当于and 对应的|相当于or

[Django]模型提高部分--聚合(group by)和条件表达式

原文:http://www.cnblogs.com/CQ-LQJ/p/5124223.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!