有人用过flink1.14的 row_number么?over里必须加时间属性么?我用数值类型的不行[阿里云实时计算 Flink版]

有人用过flink1.14的 row_number么?over里必须加时间属性么?我用数值类型的不行呢? 报错:OVER windows’ ordering in stream mode must be defined on a time attribute.

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. row_number的语法为:

    SELECT [column_list]FROM (   SELECT [column_list],     ROW_NUMBER() OVER ([PARTITION BY col1[, col2...]]       ORDER BY time_attr_col [asc|desc]) AS rownum   FROM table_name)WHERE rownum = 1

    可以看出来row_number并没有对时间进行限定死。

  2. 在flink 1.14中使用row_number函数,在使用窗口(window)时,必须在over语句中定义时间属性,因为在流处理模式下窗口的排序必须基于时间属性。你的错误:可以看看这个链接https://blog.csdn.net/sinat_24296421/article/details/116032186

  3. 你没现在rownumber,没限制,就topn和=1两种用法,来个子查询然后where rk

    此答案来自钉钉群“【2】Apache Flink China 社区”