Skip to Content

窗口函数

以下表格说明了 MAXIR 提供的内置窗口函数。所有的窗口函数都是 immutable

函数返回类型完整语法描述
cume_dist()double precisionCUME_DIST() OVER ( [PARTITION BY expr ] ORDER BY expr )计算一组值中一个值的累积分布。等值行总是计算出相同的累积分布值。
dense_rank()bigintDENSE_RANK () OVER ( [PARTITION BY expr ] ORDER BY expr )在有序的一组行中计算一行的排名,不跳过排名值。等值行被赋予相同的排名值。
first_value(expr)输入 expr 类型相同FIRST_VALUE( expr ) OVER ( [PARTITION BY expr ] ORDER BY expr [ROWS|RANGE frame_expr ] )返回有序值集中的第一个值。
lag(expr [, offset] [, default])输入 expr 类型相同LAG( expr [, offset ] [, default ]) OVER ( [PARTITION BY expr ] ORDER BY expr )在不进行自连接的情况下,提供对同一表的多行的访问。给定一个查询返回的一系列行和光标的位置,LAG 提供对该位置之前给定物理偏移处的行的访问。默认的 offset 是 1。default 设置如果偏移超出窗口范围时返回的值。如果未指定 default,默认值为 null。
last_value(expr)输入 expr 类型相同LAST_VALUE(expr) OVER ( [PARTITION BY expr] ORDER BY expr [ROWS|RANGE frame_expr ] )返回有序值集中的最后一个值。
lead( expr [, offset ] [, default ])输入 expr 类型相同LEAD( expr [, offset] [, expr default]) OVER ( [PARTITION BY expr] ORDER BY expr )在不进行自连接的情况下,提供对同一表的多行的访问。给定一个查询返回的一系列行和光标的位置,lead 提供对该位置之后给定物理偏移处的行的访问。如果未指定 offset,默认偏移量为 1。default 设置如果偏移超出窗口范围时返回的值。如果未指定 default,默认值为 null。
ntile(expr)bigintNTILE(expr) OVER ( [PARTITION BY expr] ORDER BY expr )将有序数据集划分为多个桶(由 expr 定义)并为每行分配一个桶号。
percent_rank()double precisionPERCENT_RANK () OVER ( [PARTITION BY expr] ORDER BY expr)计算假设行 R 的排名减 1,除以正在评估的行数减 1(在窗口分区内)。
rank()bigintRANK () OVER ( [PARTITION BY expr] ORDER BY expr)在有序的值组中计算一行的排名。具有相等排名标准的行获得相同的排名。计算下一个排名值时,会将并列的行数添加到排名数字中。在这种情况下,排名可能不是连续的数字。
row_number()bigintROW_NUMBER () OVER ( [PARTITION BY expr] ORDER BY expr)为应用它的每一行(窗口分区中的每一行或查询的每一行)分配一个唯一的数字。