数据仓库服务 GAUSSDB(DWS)-漏斗和留存函数:windowfunnel

时间:2024-12-06 15:12:47

windowfunnel

windowfunnel函数用于在滑动的时间窗口中搜索事件列表并计算条件匹配的事件列表的最大长度。 GaussDB (DWS)根据用户定义的事件列表,从第一个事件开始匹配,依次做有序最长的匹配,返回匹配的最大长度。一旦匹配失败,结束整个匹配。具体介绍如下:

假设在窗口足够大的条件下:

  • 条件事件为c1,c2,c3,而用户数据为c1,c2,c3,c4,最终匹配到c1,c2,c3,函数返回值为3。
  • 条件事件为c1,c2,c3,而用户数据为c4,c3,c2,c1,最终匹配到c1,函数返回值为1。
  • 条件事件为c1,c2,c3,而用户数据为c4,c3,最终没有匹配到事件,函数返回值为0。

语法

1
windowFunnel(window, mode, timestamp, cond1, cond2, ..., condN)

入参说明

  • window:bigint类型。滑动的时间窗口的大小,指从第一个事件开始,往后推移的时间窗口大小,单位为秒。
  • mode:text类型。目前仅支持default模式,其他模式报错处理。Default模式是指在同一个窗口期内,从第一个事件开始匹配,尽量匹配多的事件。
  • timestamp:事件发生的时间范围,支持timestamp without time zone、timestamp with time zone、date、int、bigint类型。
  • cond:变长boolean数组。指当前Tuple的数据满足事件的哪个步骤。GaussDB(DWS)只支持1~32个condition,不在此范围报错处理。

返回值

level:int类型。条件匹配的事件列表的最大长度。

support.huaweicloud.com/sqlreference-910-dws/dws_06_0372.html