2012-06-26 99 views
4

鑑於我有表,一些數據...我這是用來檢索與複雜的情況下,第一個數據的查詢......參考PostgreSQL的查詢列另一列

SELECT row_number() over (...) as num, ... as field 1, 
    case ... as field2 
    FROM ... 

現在我想添加更復雜的邏輯,像

SELECT row_number() over (...) as num, ... as field 1, 
    field2 * num as field2 
    FROM ... 

基本上,如果我輸入row_num + 1 as field2的Postgres返回我

錯誤:列 「ROW_NUM」 不存在

如何在此查詢中查詢字段的引用?

回答

5

使一個外部表,選擇字段2在該表中

Select *, num+1 as field2 
from 
(
    SELECT row_number() over (...) as num, ... as field1 FROM ... 
) t 
0
SELECT row_number() over (...) as num, 
     1 + row_number() over (...) as field2, 
     ... as field3, 
    FROM ...