我想从给定的表中获取一些总和为 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 |
答案 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。某些数据库拼写不同,例如 limit
或 select top
。