首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为每位员工设置工作百分比

为每位员工设置工作百分比
EN

Stack Overflow用户
提问于 2015-06-11 19:51:38
回答 1查看 63关注 0票数 0

我有以下情况。我有一些员工的工作百分比为每个。每次有工作到来时,我需要根据工作百分比将其分配给某个员工,例如:

代码语言:javascript
复制
Employee 1  Job Percentage
James       75%
Adam        15%
Cindy       10%

因此,当有工作可用时,必须有75%的时间分配给James,15%的时间分配给Adam,10%的时间分配给Cindy。这些数据存储在MySQL数据库中。

如果只有2名员工,这将很容易解决,因为我可以获得1到100之间的随机数字(兰特1,100),并查看它是否在某个员工百分比的范围内,并相应地分配工作。这里的问题是,员工数量可以更改,并且可以添加和删除员工。有没有人能给出一个解决方案?欢迎任何想法。

EN

回答 1

Stack Overflow用户

发布于 2015-06-11 20:00:22

您需要的是累积百分比。然后你就可以使用rand()了。所以:

代码语言:javascript
复制
select a.*
from (select a.*,
             (@cume := @cume + percentage) as cume
      from allocations a cross join
           (select @cume := 0)
     ) a cross join
     (select rand() as r) r
where r.r between cume - percentage and cume
limit 1;

我们的想法是获得如下范围:

代码语言:javascript
复制
 0%     75%
75%     90%
90%    100%

rand()放入子查询的目的是只获取一行。因为查询使用between,所以每运行几亿次可能会有一个副本,所以我添加了limit 1。它使用between,以防rand()返回0或1。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30780007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档