Sql SUM указывает шаг за шагом - PullRequest
2 голосов
/ 31 января 2012

Допустим, у меня есть такая таблица:

ID_points ID_team points date
1         1        2     1/15/2012
2         1        0     1/16/2012
3         1        -1    1/17/2012
4         1        3     1/18/2012
5         1        4     1/18/2012

Теперь я хочу СУММИТЬ точки, но не ВСЕ точки, а шаг за шагом, чтобы у меня был хороший график.

Например, я бы хотел, чтобы моя таблица выглядела так (после того, как я отфильтрую команду по ID и порядку по дате ASC):

ID_points ID_team points date
1         1        2     1/15/2012
2         1        2     1/16/2012
3         1        1    1/17/2012
4         1        4     1/18/2012
5         1        8     1/18/2012

Это возможно или нет?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2012

Если вы используете СУБД, которая поддерживает функции управления окнами, это просто:

SELECT ID_points, 
       ID_team, 
       points, 
       sum(points) over (partition by id_team order by date) as running_poins
FROM the_table
ORDER BY id_team, date
0 голосов
/ 01 февраля 2012
declare @tbl table (ID_points int primary key, ID_team int, points int, [date] date)

insert into @tbl select 1,1,2,'1/15/2012'
union select 2,1,0,'1/16/2012'
union select 3,1,-1,'1/17/2012'
union select 4,1,3,'1/18/2012'
union select 5,1,4,'1/18/2012'


select t1.ID_points, t1.ID_team, sum(t2.points) points, t1.[date]
from @tbl t1
left join @tbl t2
    on t1.ID_points >= t2.ID_points
group by t1.ID_points, t1.ID_team, t1.[date]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...