У нас есть несколько таблиц, которые имеют такую структуру:
начало, - дата и время
конец, - дата / время
стоимость - десятичная
Так, например, может быть строка вроде:
01.01.2010 10:08, 01.01.2010 13:56, 135.00
01.01.2010 11:01, 01.01.2010 15:22, 118.00
01.01.2010 06:19, 01.02.2010 1:43, 167.00
Etc ...
Я бы хотел получить это в формате (с функцией?), Который возвращает данные в формате, подобном:
10:00, 10:15, X, Y, Z
10:15, 10:30, X, Y, Z
10:30, 10:45, X, Y, Z
10:45, 11:00, X, Y, Z
11:00, 11:15, X, Y, Z
....
Где:
X = количество строк, соответствующих
Y = стоимость / затраты за этот отрезок времени
Z = общее количество времени в течение этой продолжительности
IE, для приведенных выше данных у нас может быть:
10: 00, 10:15, 1 (135/228 минут * 7), 7
- Первый ряд начинается в 10:08, поэтому с 10:00 до 10:15 используется только 7 минут.
- Время начала и окончания составляет 228 минут.
....
11:00, 11:15, 2, ((135 + 118) / ((228 + 261) минут * (15 + 14)), 29
- Второй ряд начинается сразу после 11:00, поэтому нам нужно 15 минут от первого ряда, плюс 14 минут от второго ряда
- Во втором пуске -> время окончания 261 минута
....
Полагаю, что здесь я сделал математику, но мне нужно выяснить, как превратить это в функцию PG, чтобы ее можно было использовать в отчете.
В идеале я хотел бы иметь возможность вызывать функцию с произвольной длительностью, то есть 15 минут, или 30 минут, или 60 минут, и разделить ее на основании этого.
Есть идеи?