У меня есть таблица, в которой хранится история статусов задач.Статус задачи может меняться со временем, и каждый раз, когда статус задачи изменяется, в таблице создается новая запись с новым статусом и измененной датой.
Пример:
Task ID| Status | Date Modified
-------+--------+---------------
100 |READY | 2018-03-01
101 |READY | 2018-03-01
102 |READY | 2018-03-01
100 |RUNNING | 2018-03-02
101 |RUNNING | 2018-03-03
100 |FINISHED| 2018-03-03
102 |RUNNING | 2018-03-04
100 |READY | 2018-03-04
101 |FINISHED| 2018-03-05
102 |FINISHED| 2018-03-07
Как запросить «промежуточный итог» подсчета состояния, как показано ниже?
Date | READY | RUNNING | FINISHED
------------+-------+---------+----------
2018-03-01 | 3 | 0 | 0
2018-03-02 | 2 | 1 | 0
2018-03-03 | 1 | 1 | 1
2018-03-04 | 1 | 2 | 0
2018-03-05 | 1 | 1 | 1
2018-03-06 | 1 | 1 | 1
2018-03-07 | 1 | 0 | 2
Например, 2018-03-07:
- статус задачи 100 ГОТОВ (Последнее обновление до ГОТОВ на 2018-03-04)
- статус задачи 101 ЗАКОНЧЕН (последний обновлен до ЗАВЕРШЕН 2018-03-05)
- состояние задачи 102 ЗАВЕРШЕНО (Последнее обновление до ЗАВЕРШЕНО в 2018-03-07)
Таким образом, значения состояния на 2018-03-07 ГОТОВЫ: 1, RUNNING: 0, FINISHED: 2
В Интернете я натолкнулся на несколько примеров общего количества, в которых используется разделение, но я не могу применить их к этому сценарию.