gpt4 book ai didi

php - 根据平均值分配行

转载 作者:行者123 更新时间:2023-11-29 15:37:24 26 4
gpt4 key购买 nike

我正在从 csv 导入。这些案例需要根据案例值(value)平均分配给 4 个人。这些值的范围可以从 4 美元到 40 000 美元不等,因此正常计数案例数量然后根据该数量进行分配是行不通的。

举个例子,第一个箱子的价格可能是 $20 000 美元,其他 11 个箱子的价格可能在 $200 到 $450 之间,这不会构成 $20 000 美元。因此,第一个用户将获得 20,000 美元,然后将其余的平均分配给其余 3 个用户。

我对如何在 mysql 中执行此操作或从 php 中进行选择然后写回 mysql 感到困惑。

我尝试过平均金额、求和除以 4。对行进行编号,然后对其进行排序并将每 4 个分配给用户等。但我根本没有做到这一点。

SELECT amount as a,'2725.5' as b
FROM `testing_assign`
ORDER BY amount DESC

#where 2725.5 is the average

这就是返回的内容。

"a"     "b"        

"3791" "2725.5"

"2000" "2725.5"

"900" "2725.5"

"890" "2725.5"

"771" "2725.5"

"762" "2725.5"

"620" "2725.5"

"456" "2725.5"

"450" "2725.5"

"189" "2725.5"

"49" "2725.5"

"24" "2725.5"

预计是

a           c

3791 - user 1

2000 - user 2

900 - user 3

890 - user 4

771 - user 3

762 - user 4

620 - user 3

456 - user 4

450 - user 3

189 - user 4

49 - user 2

24 - user 2

user 4 = A4+A6+A8+A10
user 3 = A3+A5+A7+A9
user 2 = A2+A11+A12

用户 1 得到 a1,因为这是最大的,而剩下的平均总和不等于该金额。

类似于更新案例集用户 - 用户 2,其中金额 =24 等

最佳答案

我认为当您使用求和和分组从数据库本身获取值时,您可以对每个用户的金额求和

SELECT sum(amount) as a,'2725.5' as b,`user` as c FROM `testing_assign` GROUP by `user` ORDER BY amount DESC

这个 SQL 查询将返回每个用户数量的总和,就像下面你想要的那样

 a       b       c
3791 2725.5 user 1
2073 2725.5 user 2
2741 2725.5 user 3
2297 2725.5 user 4

然后您可以简单地使用您的条件来满足您的需求。

关于php - 根据平均值分配行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58097951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com