Netezza Window 分区语法
Netezza Window Partitioning Syntax
Window 分区的 Netezza 文档声明您可以使用 window 分区语法来命名一个或多个列。如果有人能给我举个例子,我将不胜感激?
我不太理解下面的文档:
<window partition clause> ::= partition by <column reference list>
<column reference list> ::= <value expression>
好处是您在 window 分区的文档中不仅仅局限于 Netezza。可以使用底层PostgreSQL documentation, or SQL Server!总会有细微的差别,但大体上是一样的。
也就是说,文档中提到的 window 分区子句指的是必须放置的代码部分,以将聚合函数声明为 windowed 聚合。通常,你会这样写。
select id, sum(col) from tbl group by id;
要声明这是一个 windowed 聚合,您需要放入 window 分区子句,它(几乎)总是以 partition by
.
开头
select id, sum(col) over (partition by id) from tbl;
您引用的专栏参考列表通常只是您在 select
中列出它们的方式的专栏。不过,与 select
类似,您始终可以在此处创建新列。这就是他们所说的值表达式的意思。
select id, sum(col) over (partition by case when id > 10 then 1 else 0 end) from tbl;
Window 分区的 Netezza 文档声明您可以使用 window 分区语法来命名一个或多个列。如果有人能给我举个例子,我将不胜感激?
我不太理解下面的文档:
<window partition clause> ::= partition by <column reference list>
<column reference list> ::= <value expression>
好处是您在 window 分区的文档中不仅仅局限于 Netezza。可以使用底层PostgreSQL documentation, or SQL Server!总会有细微的差别,但大体上是一样的。
也就是说,文档中提到的 window 分区子句指的是必须放置的代码部分,以将聚合函数声明为 windowed 聚合。通常,你会这样写。
select id, sum(col) from tbl group by id;
要声明这是一个 windowed 聚合,您需要放入 window 分区子句,它(几乎)总是以 partition by
.
select id, sum(col) over (partition by id) from tbl;
您引用的专栏参考列表通常只是您在 select
中列出它们的方式的专栏。不过,与 select
类似,您始终可以在此处创建新列。这就是他们所说的值表达式的意思。
select id, sum(col) over (partition by case when id > 10 then 1 else 0 end) from tbl;