【发布时间】:2011-12-23 04:47:03
【问题描述】:
我的问题由以下查询表示:
SELECT
b.row_id, b.x, b.y, b.something,
(SELECT a.x FROM my_table a WHERE a.row_id = (b.row_id - 1), a.something != 42 ) AS source_x,
(SELECT a.y FROM my_table a WHERE a.row_id = (b.row_id - 1), a.something != 42 ) AS source_y
FROM
my_table b
我使用相同的子查询语句两次,同时获取source_x 和source_y。
这就是为什么我想知道是否可以只使用一个子查询来做到这一点?
因为一旦我对我的真实数据(数百万行)运行此查询,它似乎永远不会完成并且需要数小时甚至数天(我的连接在结束前挂断)。
我使用的是 PostgreSQL 8.4
【问题讨论】:
标签: sql performance postgresql indexing correlated-subquery