我的問題是由以下查詢表示:使用單個SQL相關子查詢得到兩列
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
我嘗試了部分索引,然後@DavidEG查詢並且很快創建了新表。非常感謝! –
@ JulieFen-Chong:很酷。 :)擬合指數對於數百萬行是必不可少的。 –