SQL语句统计错误率

2018年的第一篇博客就以此作为开端吧 :D

最近在项目中碰到需要统计类似错误率之类的需求,原本这功能是之前做的,但是最近测的时候发现出了点问题,显示的结果不对。这就比较尴尬了。。。
于是就进行debug,发现之前写的查询SQL有问题,“不通用”,限制条件比较多,想的太复杂了点。

回归需求

当你想一个问题的时候想不到好的解决办法的时候或者不好实现某个需求的时候,你就应该回归需求的本身。

需求:统计某个得分点的错误率。

首先

=100%

因此就得先查出总数和错误数,总数使用count 就行,错误数单独的查简单,将错误数和总数合到一起展示不是那么容易想到。

最终的办法:使用sum函数,参数带表达式

select count(*) total,sum(case when obtain=0 then 1 else 0 end) errorCounts...
from t_scoreItem
where ...

后来发现还有一种方式实现,使用union all

SELECT SUM(正确数)+SUM(错误数) AS 总记录数,SUM(正确数),SUM(错误数)
FROM (
    SELECT COUNT(1) 正确数,0 错误数
    FROM TB
    WHERE STATUS=1
    UNION ALL
    SELECT 0 正确数,COUNT(1) 错误数
    FROM TB
    WHERE STATUS=0
) a

总结

本文是统计错误率的,由此可以拓展到查询其他状态的数据的数量占总数的比例,希望对读者有所帮助:D

转载于:https://www.cnblogs.com/ss0xt/p/8569774.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值