Debit Credit Balance calculating from previous records with Pagination I have a table which contains the following data:

ID      In       Out 
1      100.00    0.00   
2       10.00    0.00   
3        0.00   70.00    
4        5.00    0.00    
5        0.00   60.00   
6       20.00    0.00     


Now I need a query which gives me the following result:

ID      In       Out    Balance
1      100.00    0.00   100.00
2       10.00    0.00   110.00
3        0.00   70.00    40.00
4        5.00    0.00    45.00
5        0.00   60.00   -15.00
6       20.00    0.00     5.00


Is it possible to do this with one query, without using a trigger or temp variables or stored procedures? Also will work with pagination on table/grid. 

I made this question from this i still don't have the answer for this.
As you have also tagged it with Postgres:

select id, 
       "in", 
       "out", 
       sum("in") over (order by id) - sum("out") over (order by id) as balance
from data
order by id;


The above is not Postgres specific, it's standard ANSI SQL using window functions.

Online example: http://rextester.com/ENBLS73027

To add pagination, use row_number()

select id, "in", "out", balance
from (
  select id, 
         "in", 
         "out", 
         sum("in") over (order by id) - sum("out") over (order by id) as balance, 
         row_Number() over (order by id) as rn
  from data
) t
where rn between 3 and 6 -- rows 3,4,5 and 6
order by id;