慢慢学doris之【窗口函数】
窗口函数也叫分析函数,可以用于自定义额外的查询字段,用于分析查询出来的数据。
举例说明,比如说现在有一个资讯浏览量的查询结果
其中sum_counts字段是根据日期分组然后累加的点击量,一般情况下,查询到这里也就差不多了。但是使用窗口函数还可以进一步分析得到的数据。
比如,使用语句:SUM(sum_counts) OVER (PARTITION BY current_info_id ORDER BY count_date rows between 1 preceding and 1 following) AS three_sum可以分析得到连续三天的浏览量总和
使用语句:AVG(sum_counts) OVER (PARTITION BY current_info_id ORDER BY count_date rows between 1 preceding and 1 following) AS three_avg 可以分析得出连续三天内的浏览量平均值
类似的函数还有MAX,MIN,COUNT等
-----------------------------------------------------------------------------------------------------------------------------------------
window_funnel是一个漏斗分析的方法
用法如下:
window_funnel(window, mode, timestamp_column, event1, event2, ... , eventN)
window:分析的时间范围,单位为秒
mode:分析模式,一般为'default'
timestamp_column:时间字段 单位为datetime
event1,event2,.......eventn:多个指定事件
假如现在有这样的一个业务表,里面记录了用户的操作记录,包含字段:用户、事件、操作
我们就可以利用这个漏斗分析函数,去分析每个用户的操作顺序,从而预测用户的操作习惯。
| username | time | event |
| 客户A | 2024-01-01 00:00:00 | 点击XX|
| 客户A | 2024-01-01 00:10:00 | 收藏XX|
| 客户A | 2024-01-01 00:22:00 | 加车XX|
| 客户A | 2024-01-01 00:22:00 | 下单XX|
| 客户B | 2024-01-01 00:00:00 | 点击XX|
| 客户B | 2024-01-01 00:10:00 | 收藏XX|
| 客户B | 2024-01-01 00:22:00 | 下单XX|
我们现在指定一个事件顺序 点击-》收藏-》加车-》下单
通过这个漏斗分析,我们可以得到客户A的时间长度为4,客户B的时间长度为2。
如果数据量足够大,就可以假定客户A和客户B的购买习惯。