我正在尝试使用此公式查找百分位数排名。(B+0.5E)*100/(N)
表示“X”。其中 x 是我在 'emp' 表中拥有的值。B=低于 x 的值的数量,E=等于 x 的值的数量,N = 该表中值的总数。
我在 MySQL 中查找“B”和“E”时遇到困难。我已经尝试过查询,但它不起作用。是否可以为整个公式运行单个查询?
最佳答案
将 B 替换为:
SUM(IF(column_of_value < 'x', column_of_value, 0))
和E:
SUM(IF(column_of_value = 'x', column_of_value, 0))
和 N:
COUNT(column_of_value)
您的计算结果为:
((SUM(IF(column_of_value < 'x', column_of_value, 0)) + (0.5 * SUM(IF(column_of_value = 'x', column_of_value, 0)))) * 100) / COUNT(column_of_value) AS result
参见SQL Fiddle在这里。
关于MySql 查找大于或小于值的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12381886/