|
Запрос суммы по нарастанию года.
|
|||
---|---|---|---|
#18+
Добрый день. Бьюсь весь день над задачей. Есть таблица: year, accrual 2015, 1 2016, 5 2017, 4 2018, 9 2019, 14 2020, 27 Нужно посчитать сумму по нарастанию года. Если последующее число меньше нарастающей суммы, то число к сумме не прибавляется. Т.е. результат будет: Результат: year, accrual, result 2015, 1, 1 2016, 5, 6 2017, 4, 6 2018, 9, 15 2019, 14, 15 2020, 27, 42 Вот таблица: CREATE TABLE Quest5(year integer PRIMARY KEY, accrual integer); INSERT INTO Quest5 VALUES(2015, 1); INSERT INTO Quest5 VALUES(2016, 5); INSERT INTO Quest5 VALUES(2017, 4); INSERT INTO Quest5 VALUES(2018, 9); INSERT INTO Quest5 VALUES(2019, 14); INSERT INTO Quest5 VALUES(2020, 27); ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2021, 21:08 |
|
Запрос суммы по нарастанию года.
|
|||
---|---|---|---|
#18+
CREATE TABLE Quest5(year integer PRIMARY KEY, accrual integer); INSERT INTO Quest5 VALUES(2015, 1); INSERT INTO Quest5 VALUES(2016, 5); INSERT INTO Quest5 VALUES(2017, 4); INSERT INTO Quest5 VALUES(2018, 9); INSERT INTO Quest5 VALUES(2019, 14); INSERT INTO Quest5 VALUES(2020, 27); ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2021, 21:09 |
|
Запрос суммы по нарастанию года.
|
|||
---|---|---|---|
#18+
Удалось собрать только нарастающую сумму. select s.*, s.accrual + (select coalesce(sum(t2.accrual), 0) from Quest5 as t2 where t2.year < s.year) as total from Quest5 as s order by s.year; ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2021, 21:13 |
|
Запрос суммы по нарастанию года.
|
|||
---|---|---|---|
#18+
Vladislav1987, Интересная задача... сейчас попробую запрос вам сообразить. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2021, 21:30 |
|
Запрос суммы по нарастанию года.
|
|||
---|---|---|---|
#18+
Vladislav1987, как то так вот Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Мне не кажется что задача решается без ручного цикла через рекурсию (по своей постановке просто). -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2021, 21:43 |
|
|
start [/forum/topic.php?fid=53&msg=40057613&tid=1994118]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 264ms |
total: | 396ms |
0 / 0 |