我有桌子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/