|
Помогите довести до ума нарастающий итог
|
|||
---|---|---|---|
#18+
Мне нужно составить матрицу тарифов и посчитать по определенной формуле их стоимость. У тарифа есть стартовая стоимость, на которую применяется скидка за период и клубная скидка. Кроме того у тарифа есть увеличение скорости, которое имеет фиксированную скорость и к которой скидка не применяется (просто прибавляется определенная стоимость к предыдущей скорости). Тарифы и формулы я свел в такую таблицу: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
В столбе FEE указана стартовая стоимость. Мне нужно туда же добавить нарастающий итог, группа начинается с RANK=1, прибавляется значение STEP. Не хочется добавлять еще один подзапрос, поверх которого будет добавлена sum() over(). Можно ли просуммировать столбец на том же уровне? По идее нужно использовать lag, но не пойму как применять эту функцию на самой себе. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 15:23 |
|
Помогите довести до ума нарастающий итог
|
|||
---|---|---|---|
#18+
Чудак, ты уже давно должен понять, что твоё вербальное некачественное формулирование задачи, за которую тебе (заметь, не нам!) платят зряплату, можно компенсировать хотя бы желаемым результатом. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 15:31 |
|
Помогите довести до ума нарастающий итог
|
|||
---|---|---|---|
#18+
Результат у меня получается такой: STATUSLINEPERIODRATERANKSTEPFEEНачальный11001200800Начальный12002100Начальный13003100Начальный110004100Начальный310012002280Начальный32002100Начальный33003100Начальный310004100Начальный610012004320Начальный62002100Начальный63003100Начальный610004100 А я хотел бы такой: STATUSLINEPERIODRATERANKSTEPFEEНачальный11001200800Начальный120021001000Начальный130031001100Начальный1100041001200Начальный310012002280Начальный320021002880Начальный330031003180Начальный3100041003480Начальный610012004320Начальный620021005520Начальный630031006120Начальный6100041006720 То есть заполнить пропущенные суммы нарастающим итогом. В качестве "костыля" я сделал так: Код: plsql 1. 2. 3. 4.
но хотелось бы обойтись формулами. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 15:41 |
|
Помогите довести до ума нарастающий итог
|
|||
---|---|---|---|
#18+
Alibek B. То есть заполнить пропущенные суммы нарастающим итогом. last_value ignore nulls заполнит пропущенные + sum() over наростающий ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 17:59 |
|
Помогите довести до ума нарастающий итог
|
|||
---|---|---|---|
#18+
del ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 18:03 |
|
|
start [/forum/topic.php?fid=52&msg=40051029&tid=1880395]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
137ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 265ms |
total: | 490ms |
0 / 0 |