MySql子查询有多个结果的查询方法

查询背景:

需要从案件上报的记录表中, 统计出案件上报数量 、 案件已经受理的数量 、 案件已经废止的数量 、 案件已经结案的数量。

UNION  会去掉重复的行

UNION ALL  不会去掉重复的行

先用COUNT统计出每个数据 , 然后再用SUM相加得出数量

SELECT SUM(t1.shangBao) AS '上报', SUM(t1.shouLi) AS '受理', SUM(t1.feiZhi) AS '废止', SUM(t1.banJie) AS '办结' FROM (
	SELECT COUNT(uid) AS shangBao , 0 AS shouLi, 0 AS feiZhi, 0 AS banJie FROM case_report WHERE is_delete = 0  UNION ALL 	
	SELECT 0  , COUNT(uid) , 0 , 0 FROM case_report WHERE is_delete = 0 AND case_is_accept = '是' UNION ALL 
	SELECT 0 , 0 , COUNT(uid) , 0 FROM case_report WHERE is_delete = 0 AND case_is_abolish = '是' UNION ALL 	
	SELECT 0 , 0 , 0 , COUNT(uid)FROM case_report WHERE is_delete = 0 AND case_status = '已办结'		
) t1

第二种查询方式(最后我使用的第二种)

SELECT 
    SUM( CASE WHEN is_delete = 0 THEN 1 ELSE 0 END ) AS '上报',
    SUM( CASE WHEN is_delete = 0 AND case_is_accept = '是' THEN 1 ELSE 0 END  ) AS '受理',
    SUM( CASE WHEN is_delete = 0 AND case_is_abolish = '是' THEN 1 ELSE 0 END  ) AS '废止',
    SUM( CASE WHEN is_delete = 0 AND case_status = '已办结' THEN 1 ELSE 0 END  ) AS '办结'
FROM
    case_report

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值