1

Window Partitioning 的 Netezza 文档指出,您可以使用窗口分区语法来命名一个或多个列。如果有人能给我一个例子,我将不胜感激?

我不太了解下面的文档: <window partition clause> ::= partition by <column reference list> <column reference list> ::= <value expression>

4

1 回答 1

2

好消息是您的窗口分区文档中不仅限于 Netezza。您可以使用底层的PostgreSQL 文档,或SQL Server!总会有细微的差异,但它们大多是相同的。

也就是说,文档中提到的窗口分区子句是指您必须放置的代码部分,以将聚合函数声明为窗口聚合。通常,你会写这样的东西。

select id, sum(col) from tbl group by id;

要声明这是一个窗口聚合,您需要放入窗口分区子句,该子句(几乎)总是以partition by.

select id, sum(col) over (partition by id) from tbl;

您引用的列参考列表通常只是您在select. 但是,与 a 类似select,您始终可以在此处创建新列。这就是他们所说的价值表达的意思。

select id, sum(col) over (partition by case when id > 10 then 1 else 0 end) from tbl;
于 2016-09-02T14:38:29.620 回答