标签:
前言:本文以学习记录的形式发表出来,前段时间苦于照模型聚合中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