MySQL 统计总数和各分组数量 | 您所在的位置:网站首页 › 统计横向为指定条件的个数怎么算 › MySQL 统计总数和各分组数量 |
需求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 |
CopyRight 2018-2019 实验室设备网 版权所有 |