У меня есть эта таблица активности
+--------------+------------------+
| Field | Type |
+--------------+------------------+
| id | int(11) unsigned |
| start_date | timestamp |
| end_date | timestamp |
| ... | |
+--------------+------------------+
Мне нужно представление, которое группирует эти действия по start_date по DAY, но таким образом, чтобы, если end_date не совпадает с днем start_date, представление снова содержало запись, но с start_date, установленным на 00:00 следующего дня. день.. (и так далее, повторяется столько раз, сколько необходимо, пока start_date не окажется в тот же день, что и end_date)
Например:
если таблица действий содержит:
+--------------+----------------------------+----------------------------+
| id | start_date | end_date |
+--------------+----------------------------+----------------------------+
| 1 | 2014-12-02 14:12:00+00 | 2014-12-03 06:45:00+00 |
| 2 | 2014-12-05 15:25:00+00 | 2014-12-05 07:29:00+00 |
+--------------+----------------------------+----------------------------+
Представление должно содержать:
+--------------+----------------------------+----------------------------+
| activity_id | start_date | end_date |
+--------------+----------------------------+----------------------------+
| 1 | 2014-12-02 14:12:00+00 | 2014-12-02 23:59:59+00 |
| 1 | 2014-12-03 00:00:00+00 | 2014-12-03 06:45:00+00 |
| 2 | 2014-12-05 15:25:00+00 | 2014-12-05 07:29:00+00 |
+--------------+----------------------------+----------------------------+
Любая помощь будет принята с благодарностью!
PS: я использую postgresql