6

PostgreSQLウィンドウ関数のドキュメントは、クエリの複数の場所で同じ名前のウィンドウを使用できることを示唆しているようです。しかし、名前付きウィンドウを作成する方法がわかりません。

SELECT first_value(vin) OVER( PARTITION BY vin ) AS w, first_value(make) OVER w
FROM inventory.vehicles
WHERE lot_Id = 9999 AND make is not null;

これは私が取る構文を取得しようとしているジョーククエリですが、エラーが発生します:

エラー:ウィンドウ「w」は存在しません

4

1 に答える 1

13

答えは実際にはSELECTドキュメントにありました:

WINDOW

オプションのWINDOW句は一般的な形式です

WINDOW window_name AS ( window_definition ) [, ...]

これが例です、

SELECT first_value(vin) OVER w,
  first_value(make) OVER w
FROM inventory.vehicles
WHERE lot_Id = 9999
  AND make is not null
WINDOW w AS ( PARTITION by vin );
于 2010-08-10T23:14:19.910 に答える