2016-07-29 97 views
1

我想选择最多一定数量(大小)的行。 我的SQL(SQL Fiddle):SQL:从数据库中选择最多一个数字(大小)

id user_id  storage 
1 1   1983349 
2 1   42552 
3 1   367225 
4 1   1357899 
37 1   9314493 

我要选择达到一定的数量(大小)只有所有行。 ,问题是:

Select * from uploads where storage < 410000 

应该得到这样的位置:

id user_id  storage 
2 1   42552 
3 1   367225 

ID '2' 和 '3' 的总结是409777.

+0

所以你想SUM()的结果? –

+0

不,我想将行分成一定数量 –

+0

不清楚你想要什么! –

回答

2

你需要的一些方法获得累计总和。在MySQL中,最简单的方法使用变量:

select u.* 
from (select u.*, (@s := @s + storage) as cume_storage 
     from uploads u cross join (select @s := 0) params 
     order by id 
    ) u 
where cume_storage < 410000; 
+0

你是一个*闪电!*大声笑 –

+0

无法正常工作:http://sqlfiddle.com/#!9/eaed9/3 –

+0

@ gordon-linoff你能解释一下吗? –