需求1:统计出用户表中的总数和各个分组内的用户数量

SELECT
	COALESCE (`group_id`, '总数'),
	COUNT(`id`) '客户数'
FROM
	crm_user
GROUP BY
	group_id WITH ROLLUP

注:注意该用法场景:统计各个分组用户数量及总和。用户id、分组都为必填项,不存在为null的情况,所以使用 COALESCE函数,可以算出总数。

效果

 

补充备注:

 COALESCE是一个函数, (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,

遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。


SELECT COALESCE(NULL,NULL,1,2);
--- 返回1

SELECT COALESCE(NULL,NULL,NULL,NULL);
--- 返回NULL

 

需求2 :统计出跟进表客户跟进次数,并更新到客户表中的跟进次数字段

-- 根据跟进表跟进次数以及最后跟进时间,更新uid为111用户客户表中的客户跟进次数
UPDATE crm_customer sc,crm_share_join s,
(SELECT
	cid,
	now_time,
	COALESCE (`cid`, '总数'),
	COUNT(`id`) num
FROM
	crm_follw
WHERE uid = 111
GROUP BY
	cid WITH ROLLUP) as a 
SET sc.follow_up = a.num,sc.follw_time = a.now_time 
WHERE s.cid = a.cid  AND s.beshare_uid = 111 AND sc.id = s.bid AND sc.follow_up = 0

Logo

更多推荐