PostgreSQL:在同一查询中重用复杂的中间结果
使用PostgreSQL(8.4),我创建总结了几桌各种结果的视图(例如创建列a,b,c在视图中),然后我需要一些结果结合在同一个查询(例如a+b,a-b,(a+b)/c,...),以产生最终结果。我要注意的是,即使在同一查询中完成操作,每次使用时,中间结果都会被完全计算。 有没有一种方法可以对此进行优化,从而避免每次都计算相同的结果? 这是重现该问题的简化示例。 CREATE TABLE test1 ( id SERIAL PRIMARY KEY, log_timestamp TIMESTAMP NOT NULL ); CREATE TABLE test2 ( test1_id INTEGER NOT NULL REFERENCES test1(id), category VARCHAR(10) NOT NULL, col1 INTEGER, col2 INTEGER ); CREATE INDEX test_category_idx ON test2(category); -- Added after edit to this question CREATE INDEX test_id_idx …