zoukankan      html  css  js  c++  java
  • 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

    http://huangxiutao.cn
  • 相关阅读:
    React Native 使用 react-native-webview 渲染 HTML
    如何对 React 函数式组件进行优化?
    如何在前端中使用protobuf?
    Grunt之预处理
    基于Hooks 的 Redux 速成课
    AssemblyScript 入门指南
    webpack常用构建优化总览
    如何在前端中使用protobuf(node篇)
    哪种编程语言最适合区块链?
    hdu 相遇周期
  • 原文地址:https://www.cnblogs.com/ss0xt/p/8569774.html
Copyright © 2011-2022 走看看