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

SQL语句统计错误率的更多相关文章

  1. SQL语句统计每天、每月、每年的 数据

    SQL语句统计每天.每月.每年的数据 1.每年select year(ordertime) 年,sum(Total) 销售合计from 订单表group by year(ordertime) 2.每月 ...

  2. 【转】SQL语句统计每天、每月、每年的数据

    原文:https://www.cnblogs.com/Fooo/p/3435687.html SQL语句统计每天.每月.每年的数据 1.每年select year(ordertime) 年,sum(T ...

  3. 简单Sql语句统计每年每个月的数据,每个月为数据的每列,简单SQL练习

    有一张表,数据如下 请写出结果为以下的SQL语句. 在mysql中创建表 CREATE TABLE `aa` (  `id` int(10) NOT NULL AUTO_INCREMENT COMME ...

  4. 写sql语句统计各个学生各科成绩(case when用法)

    尊重原创:http://blog.csdn.net/love_java_cc/article/details/78268326 有如下一张表score: 建表语句: CREATE TABLE `sco ...

  5. SQL语句统计每天、每月、每年的数据

    1.每年select year(ordertime) 年,sum(Total) 销售合计from 订单表group by year(ordertime) 2.每月select year(orderti ...

  6. SQL语句统计一段时间内的记录数

    实际应用中经常需要统计单位时间的记录数: 一个小时: SELECT ),createdate,) AS 日期 ,DATEPART(hh,createdate) AS 小时,COUNT(*)AS 记录 ...

  7. SQL语句统计每天的数据

    按用户注册时间统计每天注册的不同来源.不同状态的用户数量: ), RegisterTime, ) RDate ,--DATEPART(YEAR, RegisterTime) 年 ) END 'AWai ...

  8. SQL 一条SQL语句 统计 各班总人数,男女各总人数 ,各自 男女 比例 (转)

    select  sClass 班级,count(*)  班级学生总人数, sum(case when sGender=0 then 1 else 0 end) 女生人数, sum(case when ...

  9. oracle一条sql语句统计充值表中今天,昨天,前天三天充值记录

    select NVL(sum(case when create_date_time>=to_date('2014-11-24 00:00:00','yyyy-mm-dd hh24:mi:ss') ...

随机推荐

  1. 第八章 分布式配置中心:Spring Cloud Config

    Spring Cloud Config 是 Spring Cloud 团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持, 它分为服务端与客户端两个部分. 其中服 ...

  2. 解决办法 Field userService in com.sxsj.controller.RegistLoginController required a bean of type

    转自:https://blog.csdn.net/awmw74520/article/details/82687288 APPLICATION FAILED TO START Error starti ...

  3. 使用ffmpeg合并视频文件的三种方法

    ffmpeg合并视频的方法有三种.国内大多数仅介绍了其中之一.于是觉得有必要翻译一下.其实在ffmpeg的 FAQ文档中有比较详细的说明. 使用concat协议进行视频文件的合并 这种方式的适用场景是 ...

  4. Linux 下VI文件乱码解决

    linux在vi 模式查看文件会有乱码问题 如图: 怎么解决呢? 在vi中输入冒号 然后执行下面的命令 如果系统编码不是utf8,vi看uft8编码文件时这样用:set termencoding=ut ...

  5. C++Primer笔记-----day01

    =======================================================day01======================================== ...

  6. 数字1的ASCII值是多少

    ASCII表是计算机将字符转为数字存储的一张转换表.因此,只有字符才有ASCII值,数字是没有的. 答案:数字1没有ASCII值,数字1在计算机中就是按数值1存储的. 字符1的ASCII值是 49

  7. 发生在阿里云 SLB 4 层的一次故障记录

    阿里云 SLB 与 ECS 之间发生故事.环境如下: SLB api-node: 该 SLB 后端接着 10 台节点服务器 SLB sql-node: 该 SLB 后端接着 2 台节点服务器 问题描述 ...

  8. Java设计模式学习01——单例模式(转)

    原地址:http://blog.csdn.net/xu__cg/article/details/70182988 Java单例模式是一种常见且较为简单的设计模式.单例模式,顾名思义一个类仅能有一个实例 ...

  9. Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration

    在Apache的配置文件 httpd.conf 中开启  LoadModule headers_module modules/mod_headers.so  即可解决这个问题.

  10. Java开发WebService实例(1)

    参考文献:http://blog.sina.com.cn/s/blog_7bd0d6a70101dixc.html 简单的java工程实现 1 首先建立一个Java工程,在里面建一个Web servi ...