5

いくつかのデータを含むテーブルがあるとします...複雑なケース句でデータを取得するために使用されるクエリがあります...

 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 field2Postgresと入力すると返されます

エラー: 列 "row_num" が存在しません

このクエリ内のクエリのフィールドを参照するにはどうすればよいですか?

4

2 に答える 2

6

外部テーブルを作成し、そのテーブルのフィールド 2 を選択します

Select *, num+1 as field2
from
(
   SELECT row_number() over (...) as num, ... as field1 FROM ...
) t
于 2012-06-26T11:08:57.343 に答える
0
SELECT row_number() over (...) as num,
       1 + row_number() over (...) as field2,
       ... as field3,
  FROM ...
于 2012-06-26T14:45:51.130 に答える