gpt4 book ai didi

mysql - 如何在SQL中计算 "as large as the next #"中的数字?

转载 作者:行者123 更新时间:2023-11-29 06:54:43 25 4
gpt4 key购买 nike

假设我有一个表格,它只是一列中的数字列表,称为 Standing,按从大到小的顺序排列。我希望能够计算从第二行开始第一行等于多少行。

示例:

Americas army is as large as the next 10 combined.

这些是实际结果(超过 50k,因为总共有近 10k 个结果)。

1663255
287519
238346
197905
193162
166579
134234
113571
81250
69694
67342
65702
55770
55579
54339
54328
54247
51090

我知道如何以编程方式执行此操作,我只是计算一个循环,同时从第一个值中减去每个值,直到它为负数,但在 SQL 中很难执行此操作。

最佳答案

您需要一个累计金额。 。 。对于除第一行之外的所有行。这在 MySQL 中有点棘手,但您可以使用变量来做到这一点:

select count(*)
from (select t.*, (@sum := @sum + standing) as running_standing
from t cross join
(select @sum := 0) params
where t.standing < (select max(t.standing) from t)
order by t.standing desc
) tt cross join
(select max(t.standing) as max_standing from t) as m
where tt.running_standing < m.max_standing;

关于mysql - 如何在SQL中计算 "as large as the next #"中的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46075158/

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