gbase 8a 是否支持olap函数的开窗(range/rows between)

gbase 8a 使用过程中,想使用开窗语法对olap函数进行限制,报不支持,是没有这个功能吗

支持,使用时需开启对应的参数

  1. _t_gbase_new_window_function_support 参数为控制支持
    windowing_clause 子句的参数,参数值默认为 0,不支持 windowing_clause 子
    句,设置为 1 时支持 windowing_clause 子句。
    set _t_gbase_new_window_function_support=1
  2. 不支持 windowing_clause 子句情况下,开窗方式是固定的,范围是:
    Range between unbounded preceding and current row
  3. Partition 子句为空,则不分组,即说明全部数据为一组;order by 子句
    为空,则每个分组中的所有数据不排序,即一个分组就是一个“子窗口”。
  4. between bound1 and bound2
    bound1 定义窗口的起始位置,bound2 定义窗口的结束位置。
    单独一个 bound 时,为起始位置的定义,结束位置默认为 current row,如:
    select a,b,c,sum(c)over(partition by a order by b range 2 preceding) as 'sum(c)' from
    t;
  5. unbounded preceding
    指明起始位置,即当前分组中的行首,不能出现在 bound2 中。
  6. unbounded following
    指明结束位置,即当前分组中的行尾,不能出现在 bound1 中。
  7. current row
    指明起始或结束位置为当前行。
  8. 在如下情况时,order by 关键字后可以有多个表达式:
    Range between unbounded preceding and current row
    Range between unbounded preceding and unbounded following
    Range between current row and current row
    Range between current row and unbounded following
  9. value_expr preceding | value_expr following
    起始位置为 value_expr following 时,则结束位置应为 value_expr following;
    结束位置为 value_expr preceding 时,则起始位置应为 value_expr preceding。
  10. rows 关键字后接 value_expr 时,不支持 interval 子句
    value_expr 为 num 时,标识了行的偏移量,为数值常量,正整数(四舍五入)。
    不可为负数、数值函数、表列。
  11. range 关键字后接 value_expr 时支持 interval 子句,且 order by 后只能
    有一个表达式:
    value_expr 为 num 时,order by 后的表达式只能为数值或日期(时间)类型;
    value_expr 为 interval 子句时,order by 后的表达式只能为日期(时间)类型;
    value_expr 为 num 时,标识了行的偏移量,为数值常量,正整数(四舍五入)。
    不可为负数、数值函数、表列。
  12. range 关键字,order by 后接唯一表达式用于计算窗口范围时:
    排序存在 null 值且在行首时,除非 unbounded preceding,该行不计入窗口范围;
    排序存在 null 值且在行尾时,除非 unbounded following,该行不计入窗口范围;
    当前行为 null 值,除非 unbounded preceding/following,窗口范围仅为该行。
  13. 日期(时间)类型的支持范围:date、datetime 和 timestamp。