码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-01-12 15:22:40      阅读:157      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!