我们假设我有下表:
time| id| value
1| 1| 1
3| 1| 1
1| 2| 2
选择常规系列的结果将是:
time| id| value
1| 1| 1
2| 1| Null
3| 1| 1
1| 2| 2
2| 2| Null
3| 2| NUll
通常情况下,我要么只存储NULL
值,要么另外创建两个表:一个持有所有时间,一个表持有所有ID,然后加入。
第一种方法的问题是表变得非常大,因为每个新的id都会强制我为之前的所有时间插入NULL值,每次新的时间都会强制我为所有id插入NULL值。
第二种方法的问题是连接时间太长。
我的想法是实现自定义集返回函数,如contrib\tablefunc
中的交叉表示例。
我的问题是,我是否可以期待这更快。