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:不积跬步,无以至千里.不积小流,无以成江海