Home > Back-end >  Counting SUM(VALUE) from previous cell
Counting SUM(VALUE) from previous cell

Time:12-08

I have the following table:

A Sum(Tickets)
01-2022 5
02-2022 2
03-2022 8
04-2022 1
05-2022 3
06-2022 3
07-2022 4
08-2022 1
09-2022 5
10-2022 5
11-2022 3

I would like to create the following extra column 'TotalSum(Tickets)' but I am stuck....
Anyone who can help out?

A Sum(Tickets) TotalSum(Tickets)
01-2022 5 5
02-2022 2 7
03-2022 8 15
04-2022 1 16
05-2022 3 19
06-2022 3 22
07-2022 4 26
08-2022 1 27
09-2022 5 32
10-2022 5 37
11-2022 3 40

CodePudding user response:

left join the same table where date is not bigger, then sum that for every date:

select 
    table1.date, 
    sum(t.tickets) 
from 
    table1 
        left join table1 t 
        on  t.date<= table1.date 
group by
    table1.date;

CodePudding user response:

You may use SUM() as a window function here:

SELECT A, SumTickets, SUM(SumTickets) OVER (ORDER BY A) AS TotalSumTickets
FROM yourTable
ORDER BY A;

But this assumes that you actually have a bona-fide column SumTickets which contains the sums. Assuming you really showed us the intermediate result of some aggregation query, you should use:

SELECT A, SUM(Tickets) AS SumTickets,
          SUM(SUM(Tickets)) OVER (ORDER BY A) AS TotalSumTickets
FROM yourTable
GROUP BY A
ORDER BY A;
  • Related