[SQL][MSsql] Накопительная сумма, или итог.
Я тут подумал - ещё кроссджойн можно - быстрее будет работать, но если таблица входная возвращается подзапросом, то её придётся дважды писать, что равносильно, или юзать with, что не везде возможно.
Вкратце - на маленьких объемах джойнь (лучше апплаем на больших курсором
SUM(**) OVER(ORDER BY *** ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
З.Ы. спасибо, не первый раз уже.
Второе - ты задал вопрос по MSSQL, при этом ты во всем интернете умудрился найти одну единственную ссылку, и ту посвященную Postgre! В шоке честно говоря
а Postgre/MSSQL - в принципе не важно - кубики одинаковые, из которых можно мастерить.
я просто в кои-то веки зашёл на sql-ex.ru , а там новые задачки появились.
Ну и еще раз - не бывает "чистого" SQL - бывает сиквел и доп средства в реализации СУБД, и твои "одинаковые кубики" запросто не будут работать. Те же курсоры - уже не сиквел, однако почти везде есть.
ну, меня интересовал вопрос можно ли такое сделать на "чистом" SQLЧто ты понимаешь под "чистым SQL" — SQL как он есть в SQL Server 2005 минус навароты от Microsoft?
З.ы. На чистом SQL:2003 это делается так же как в Oracle.
Оставить комментарий
kill-still
есть таблица1|1
2|5
3|2
4|1
надо посчитать накопительный итог от начала к концу:
1|1|1
2|5|6
3|2|8
4|1|9
неужели нельзя обойтись без вложенного запроса, который жутко неэффективен по времени?
нагуглил только одну статью пока что:
http://www.mail-archive.com/pgsql-postgresql.org/msg0498...
где говорится, что на чистом скуле нельзя.
З.Ы. PL развращает.