flink SQL over+win

flink sql 怎么求每小时开窗内数据多分组的占比,或者不用SQL也行

img

使用TUMBLE进行每小时的数据固定开窗,然后select 中进行具体的计算就可以了,具体的代码可以参考下面的:

select 
ename
,sal
,deptno
,sal/(sum(sal) over(partition by deptno)) --个人业绩占比
,sum(sal) over(partition by deptno) salsum --部门总业绩
,DATE_FORMAT(TUMBLE_START(rowtime, INTERVAL '1' HOUR),'yyyy-MM-dd HH:mm:ss') as start_time --开窗的开始时间
,DATE_FORMAT(TUMBLE_END(rowtime, INTERVAL '1' HOUR),'yyyy-MM-dd HH:mm:ss') as end_time  --开窗的结束时间
from emp
group by 
TUMBLE(rowtime, INTERVAL '1' HOUR)