SQL - 删除总和等于给定数字的随机行

时间:2021-02-15 09:02:47

标签: sql

我想从给定的表中获取一些总和为 250 的随机行(这可以更改)。我不需要 100% 准确,但可以是近似的。 喜欢 250 (1,5,7)

注意:- 我的表有大量数据。

id | amount|
1  |   96 |
2  |   0.63 |
3  |   351.03 |
4  |   736| 
5  |   53 |
6  |   39 |
7  |   105 |
8  |   91 |

1 个答案:

答案 0 :(得分:2)

对于任何特定数字,您可以使用带连接的逻辑返回最接近的总和。例如对于 3 个数字 - 如您的示例所示:

select t1.*, t2.*, t3.*
from t t1 join
     t t2
     on t1.id < t2.id join
     t t3
     on t2.id < t3.id
order by abs(250 - (t1.amount + t2.amount + t3.amount))
fetch first 1 row only;

请注意,fetch first 是标准 SQL。某些数据库拼写不同,例如 limitselect top