开发中经常碰到根据类型进行统计,所以在这提出这个问题,话不多说提供代码
一、根据类型统计数量
SELECT SUM(CASE WHEN aa.work_type = 1 THEN 1 ELSE 0 END) AS videoRingNum, SUM(CASE WHEN aa.work_type = 2 THEN 1 ELSE 0 END) AS hupSmsNum, SUM(CASE WHEN aa.work_type = 3 THEN 1 ELSE 0 END) AS qualityNum, SUM(CASE WHEN aa.work_type = 4 THEN 1 ELSE 0 END) AS activityNum, SUM(CASE WHEN aa.work_type = 5 THEN 1 ELSE 0 END) AS orderPayNum, SUM(CASE WHEN aa.work_type = 7 THEN 1 ELSE 0 END) AS unsubNum FROM 表明 aa WHERE bb.`status` = 1
结果:
二、根据两表同类型数据进行相加
1、一开始查询:
SELECT excess_count, type
FROM A表
WHERE shop_id = 100054 AND c_status = 0
UNION ALL
SELECT excess_count,type
FROM B表
WHERE shop_id = 100054 AND c_status = 0
结果:
最终效果:
SELECT
sum( excess_count ) as excessCount,
type
FROM (
SELECT excess_count, type
FROM A表
WHERE shop_id = 100054 AND c_status = 0
UNION ALL
SELECT excess_count,type
FROM B表
WHERE shop_id = 100054 AND c_status = 0
) tt
GROUP BY type
最终想要得结果: