Row_number()仅选择sum X的行

时间:2017-10-10 10:35:56

标签: mysql

ID | PRICE 
1 | 40 
2 | 50 
3 | 100 
4 | 10 

仅选择那些价格总和为130的id

IDS:1,2,4 {sum :: 100}跳过其余的

如果应用订购价格desc,它将获得ID 3,4

我尝试了类似的东西,但无法正常工作

set @rownum= 0;
set @rownum2 = 0;
select @rownum := @rownum + 1 as r, id_wydatku
FROM wydatki
where sum (
    select wydatki.kwota_brutto
    from wydatki
    where  @rownum2 := @rownum2 + 1<= r
) < 1000

小提琴:http://sqlfiddle.com/#!9/a4713/41

感谢您的任何提示。

1 个答案:

答案 0 :(得分:1)

此问题的解决方案是NP-Complete,如此答案所述:https://stackoverflow.com/a/6289662/2768318

话虽如此,如果您想尝试解决此问题(如果您的行数很少),您应该针对您的问题调整此解决方案:http://sqlfiddle.com/#!6/1b720/39