OceanBase 支持窗口函数吗?

OceanBase 的 Oracle 模式支持 OVER 子句,也即常说的窗口函数。本文介绍窗口函数的语法。

OceanBase 的 Oracle 模式支持 OVER 子句,也即常说的窗口函数。一个窗口包含三个组成部分:

  • 分区规范,用于将输入行分裂到不同的分区中。这个过程和

    GROUP BY

    子句的分裂过程相似。

  • 排序规范,用于决定输入数据行在窗口函数中执行的顺序。

  • 窗口边界,指定计算数据的窗口边界。默认值为

    RANGE UNBOUNDED PRECEDING

    。这个边界包含当前分区中所有从开始到目前行的所有数据。

OceanBase 数据库中窗口函数的语法如下。

有关窗口函数的详细信息,请参见《OceanBase 数据库 SQL 参考(Oracle 模式)》中的 函数 章节。

CREATE OR REPLACE FUNCTION analytic_function([ arguments ]) OVER ( [ PARTITION BY { expr[, expr ]… | ( expr[, expr ]… ) } ] [ORDER [ SIBLINGS ] BY{ expr | position | c_alias } [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ] [, { expr | position | c_alias } [ ASC | DESC ][ NULLS FIRST | NULLS LAST ]]… [ { ROWS | RANGE } { BETWEEN { UNBOUNDED PRECEDING | CURRENT ROW | value_expr { PRECEDING | FOLLOWING } } AND{ UNBOUNDED FOLLOWING | CURRENT ROW | value_expr { PRECEDING | FOLLOWING } } | { UNBOUNDED PRECEDING | CURRENT ROW| value_expr PRECEDING}} ] ] )

赞!

1 个赞