我有桌子
t1
这表明作业是否由用户完成
完成->用户成功完成作业
给定->雇主将工作分配给用户,但工作尚未完成
有问题,所以雇主取消了合同

id userid jobid  status
1    4      6    finished
2    4      7    given
3    4      8    estopped
4    4      9    finished
2    4      10    given
3    4      11    finished
4    4      12    finished

现在我要计算成功率,
((用户4完成的总数)/
((用户4完成的总数)+(用户4停止的总数))*100
我不知道如何在MySQL中实现。。。

最佳答案

尝试以下查询:

select userid,
( ( sum(case when status='finished' then 1 else 0 end) * 100 ) /
  ( sum(case when status='finished' then 1 else 0 end) + sum(case when status='estopped' then 1 else 0 end) )
) success_rate
from t1
where userid = 4
group by userid;

如果需要所有用户的记录,只需从查询中删除条件-where userid = 4

关于mysql - MySQL根据列值计算成功率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44693329/

10-11 11:15