![cover](https://img-blog.csdnimg.cn/20200323165702502.png)
MySQL 统计总数和各分组数量
需求:统计出用户表中的总数和各个分组内的用户数量SELECTCOALESCE (`group_id`, '总数'),COUNT(`id`) '客户数'FROMcrm_userGROUP BYgroup_id WITH ROLLUP效果
·
需求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
更多推荐
所有评论(0)