给定下表:
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
我找不到一种方法(不创建额外的表)来编写一个通过返回NULL
值来填充时间间隔的查询(例如,对于 itemId 101 的 15:29:00 和两个项目的 15:31:00)。
预期的结果集将是:
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
我找到了具有完整系列时间戳的单独时间表的解决方案,但我更愿意单独在查询中解决这个问题。这可能吗?