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 回答