8

The documentation for PostgreSQL window functions seems to imply you can use the same named window in multiple places in your query. However, I can't figure out how do I create a named window?

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;

This is a joke query I'm trying to get the syntax to take, but I'm getting error:

ERROR: window "w" does not exist

Evan Carroll
  • 78,363
  • 46
  • 261
  • 468

1 Answers1

14

The answer was actually in the SELECT doc:

WINDOW Clause

The optional WINDOW clause has the general form

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

Here is an example,

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 );
Evan Carroll
  • 78,363
  • 46
  • 261
  • 468