MySQL 统计两种状态的数量,两个数据相除后保留四位小数


MySQL中有时需要统计两种状态的数量,用到的函数为count(e.status = 3 or null),两整数相除并保留四位小数用convert(两数相除,decimal(10,位数))

SELECT
            e.dept_id deptId,
            count( e.STATUS = 3 OR NULL ) AS status3,
            count( e.STATUS = 4 OR NULL ) AS status4,
            convert(count( e.STATUS = 4 OR NULL ) /(count( e.STATUS = 3 OR NULL )+count( e.STATUS = 4 OR NULL )),decimal(10,4)) as rectRank
        FROM
            yn_wc_event e
            LEFT JOIN sys_dept t ON e.dept_id = t.id
        WHERE
            SUBSTR( e.find_time, 1, 4 ) = DATE_FORMAT( NOW( ), '%Y' )
            AND e.STATUS IN ( '3', '4' )
        GROUP BY
            e.dept_id,
            t.`name`
        order by rectRank desc

执行结果为:

   final:不积跬步,无以至千里.不积小流,无以成江海


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM