Счетчик каждой категории с течением времени - PullRequest
0 голосов
/ 02 октября 2018

У меня есть таблица, которая включает в себя person_ID, дату и индикатор того, преуспел ли человек в задании на дату, например, так:

Person ID   Date         Status
0001        2018-01-01   Success
0001        2018-01-05   Failure
0001        2018-01-09   Success
0001        2018-01-10   Success
0002        2018-01-01   Success
0002        2018-01-03   Success
0003        2018-01-01   Failure
0003        2018-01-02   Failure
0003        2018-01-04   Success

Я хотел бы запуститьподсчет количества успешных и количество неудачных попыток на сегодняшний день для каждого человека на каждую дату:

Person ID   Date         Running        Running
                         # Successes    # Failures
0001        2018-01-01   1              0
0001        2018-01-05   1              1
0001        2018-01-09   2              1
0001        2018-01-10   3              1
0002        2018-01-01   1              0
0002        2018-01-03   2              0
0003        2018-01-01   0              1
0003        2018-01-02   0              2
0003        2018-01-04   1              2

Я действительно не знаю, с чего начать писать запрос для выполненияэто - как это можно сделать с помощью T SQL?Ценю помощь!

1 Ответ

0 голосов
/ 02 октября 2018

Вы можете использовать совокупную сумму;

select t.*,
       sum(case when status = 'success' then 1 else 0 end) over (partition by person_id order by date) as running_success,
       sum(case when status = 'failure' then 1 else 0 end) over (partition by person_id order by date) as running_failure
from t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...