kettle实现开窗函数效果
严格来说kettle并没有开窗函数,但是他通过排序和一个组件能实现这种效果。
1、直接上图列
右下角的数据是通过排序后的结果。左下框是处理后的结果。 我的目的是获取同一 pro_o_code,yf 中 r_id最大的 fcbl。
2、组件
组件的界面属性介绍
上面的红框内容:分别为:组件名、序列命名、序列开始值,序列跨度
下面红框:可以单个字段也可以为多个字段,其逻辑就是。表内容从上到下,指定的字段发生了变化,序列从重新1开始;没发生变化,继续递增。
由此逻辑可以发现,一定要排好序
3、排序逻辑如下
由于要r_id最大值, 所以r_id要倒叙
。
4、处理解读
可以看到绿框里的每一行的那三个字段内容(prd_o_code,yf,t)均与上一行不一样,所以都会从1重新开始。绿框下面那一个与上一个相同,所以序列递增。