Учитывая следующую таблицу:
CREATE TABLE channel1m (
ts TIMESTAMP WITHOUT TIME ZONE NOT NULL,
itemId BIGINT,
value BIGINT
)
в котором строка может вставляться каждую минуту для каждого itemId следующим образом:
ts itemId value
2012-12-03 15:29:00 100 1
2012-12-03 15:30:00 100 2
2012-12-03 15:30:00 101 0
2012-12-03 15:32:00 100 1
2012-12-03 15:32:00 101 1
Я не могу найти способ (без создания дополнительных таблиц) написать запрос, который заполняет временные промежутки (например, 15:29:00 для itemId 101 и 15:31:00 для обоих элементов), возвращая NULL
в значении .
Ожидаемый набор результатов будет:
ts itemId value
2012-12-03 15:29:00 100 1
2012-12-03 15:29:00 101 NULL
2012-12-03 15:30:00 100 2
2012-12-03 15:30:00 101 0
2012-12-03 15:31:00 100 NULL
2012-12-03 15:31:00 101 NULL
2012-12-03 15:32:00 100 1
2012-12-03 15:32:00 101 1
Я нашел решения, имеющие отдельную таблицу времени с полной серией временных меток, но я бы предпочел решить это только в запросе. Это возможно?