У меня есть таблица items
, у которой есть статус и день создания
+----+-----------+------------+
| id | status | created |
+----+-----------+------------+
| 1 | PROCESSED | 2018-12-01 |
+----+-----------+------------+
| 2 | PROCESSED | 2018-12-01 |
+----+-----------+------------+
| 3 | ABORTED | 2018-12-01 |
+----+-----------+------------+
Существует соответствующая таблица item status
, которая обновляется при изменении статуса
+----+---------+-----------+------------------+
| id | item_id | status | created |
+----+---------+-----------+------------------+
| 1 | 1 | RECEIVED | 2018-12-01 10:00 |
+----+---------+-----------+------------------+
| 2 | 1 | PROCESSED | 2018-12-01 12:00 |
+----+---------+-----------+------------------+
| 3 | 2 | RECEIVED | 2018-12-01 11:00 |
+----+---------+-----------+------------------+
| 4 | 2 | PROCESSED | 2018-12-01 12:00 |
+----+---------+-----------+------------------+
| 5 | 3 | RECEIVED | 2018-12-01 13:00 |
+----+---------+-----------+------------------+
| 6 | 3 | ABORTED | 2018-12-01 13:30 |
+----+---------+-----------+------------------+
Я хочу создать отчет, который показывает среднее время обработки элемента, сгруппированное по дням, за исключением элементов, которые были прерваны. (время обработки элемента - это разница во времени между RECEIVED
и PROCESSED
)
Примерно так (продолжительность в секундах):
+------------+------------------+
| day | avg_duration |
+------------+------------------+
| 2018-12-01 | 5400 |
+------------+------------------+
Из других вопросов я определил, что это, вероятно, можно решить с помощью разбиения таблиц, но не смог написать рабочий запрос. Какой лучший способ сделать это?