MAX視窗功能 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

MAX視窗功能

MAX窗口函數返回輸入表達式值的最大值。該MAX函數使用數值並忽略NULL值。

語法

MAX ( [ ALL ] expression ) OVER ( [ PARTITION BY expr_list ] [ ORDER BY order_list frame_clause ] )

引數

expression

函數運算的目標欄或表達式。

ALL

使用引數時ALL,函數會保留運算式中的所有重複值。ALL為預設值。不支援 DISTINCT。

OVER

此子句指定彙總函數的視窗子句。子OVER句將視窗彙總函數與一般集合彙總函數區分開來。

PARTITION通過表達式列表

以一個或多個運算式來定義MAX函數的視窗。

ORDER按訂單列表

排序每一個分割區內的列。如果未指定 PARTITION BY,ORDERBY 會使用整個表格。

frame_clause

如果 ORDER BY 子句用於聚合函數,則需要明確的 frame 子句。窗框子句在排序的結果內包含或排除列集,以調整函數視窗中的一個列集。框架子句由關ROWS鍵字和相關說明符組成。請參閱 範圍函數語法摘要

資料類型

接受任何資料類型做為輸入。傳回與 expression 相同的資料類型。

範例

下列範例顯示資料視窗開頭的銷售 ID、數量和最大數量:

select salesid, qty, max(qty) over (order by salesid rows unbounded preceding) as max from winsales order by salesid; salesid | qty | max ---------+-----+----- 10001 | 10 | 10 10005 | 30 | 30 10006 | 10 | 30 20001 | 20 | 30 20002 | 20 | 30 30001 | 10 | 30 30003 | 15 | 30 30004 | 20 | 30 30007 | 30 | 30 40001 | 40 | 40 40005 | 10 | 40 (11 rows)

如需WINSALES表格的描述,請參閱範圍函數範例的範例資料表

下列範例顯示受限窗框中的 salesid、數量和最大數量:

select salesid, qty, max(qty) over (order by salesid rows between 2 preceding and 1 preceding) as max from winsales order by salesid; salesid | qty | max ---------+-----+----- 10001 | 10 | 10005 | 30 | 10 10006 | 10 | 30 20001 | 20 | 30 20002 | 20 | 20 30001 | 10 | 20 30003 | 15 | 20 30004 | 20 | 15 30007 | 30 | 20 40001 | 40 | 30 40005 | 10 | 40 (11 rows)