2012-06-26 2 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 ... 
Смежные вопросы