MySQL按条件计数

原表结构为:

select * from k_bi_1;

在这里插入图片描述
按类别统计各个状态下的数量

-- 汇总
SELECT 
	mc1_mark AS 类别,
	SUM(1) AS 应入库数,
	SUM(IF(kp = 1, 1, 0)) AS 已开料数,
	SUM(IF(dp = 1, 1, 0)) AS 已打孔数,
	SUM(IF(fp = 1, 1, 0)) AS 已扫描数,
	SUM(IF(wh = 1, 1, 0)) AS 已入库数
FROM k_bi_1
	GROUP BY mc1_mark

在这里插入图片描述
需要将列转为行,期望效果如下:
在这里插入图片描述
实现方法:多个查询结果合并

SELECT 'G' AS flag,'应入库' AS indicator,COUNT(*) AS count FROM k_bi_1 WHERE mc1_mark = 'G'
UNION ALL
SELECT 'G' AS flag,'已开料' AS indicator,COUNT(*) AS count FROM k_bi_1 WHERE mc1_mark = 'G' AND kp = 1
UNION ALL
SELECT 'G' AS flag,'已打孔' AS indicator,COUNT(*) AS count FROM k_bi_1 WHERE mc1_mark = 'G' AND dp = 1
UNION ALL
SELECT 'G' AS flag,'已扫描' AS indicator,COUNT(*) AS count FROM k_bi_1 WHERE mc1_mark = 'G' AND fp = 1
UNION ALL
SELECT 'G' AS flag,'已入库' AS indicator,COUNT(*) AS count FROM k_bi_1 WHERE mc1_mark = 'G' AND wh = 1
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值