How to find the amount (field) in the state, that is, "select * from the table where the amount (field) <150"

I need to get only specific records whose sum in the size field is <= 150. I have a table as shown below.

userid size
1       70
2      100   
3       50
4       25
5      120
6       90

The exit should be ...

userid size
1       70
3       50
4       25

For example, if we add 70.50.25, we get 145, which is <= 150.

How do I write a query to accomplish this?

+2
source share
5 answers

There will be a query that will give the following results:

SELECT * FROM `users` u
WHERE (select sum(size) from `users` where size <= u.size order by size) < 150
ORDER BY userid

, , , , , NP-Hard ANSI SQL. , , .

, , . 5 4.

+5

, , . SQL.

+4

. ...

N. - N , , , . O (2 ^ N * N), 2N , , N .

.

0

, :

userid size    userid size
1       70     2      100   

userid size    userid size
3       50     4       25

userid size    userid size
5      120     6       90

userid size    userid size
1       70     2      100   
3       50     3       50

userid size    userid size
1       70     2      100   
4       25     4       25

userid size    userid size
1       70     4       25
3       50     6       90
4       25

userid size    userid size
4       25     3       50
5      120     6       90

SQL . , , , ? , , , , , , , - . , - .

0

, ? - , SQL, ( ) .

0

All Articles