最近在使用flink1.12 的sql方式时,发现ROW_NUMBER去重的结果不符合预期。具体表现为:当在第二天有新的optime出现时,下发的时间却还是昨天日志中的optime,看到官方文档中说该去重函数只支持单个的时间属性 排序/降序,所以不知是否我自己的sql中使用了两个字段排序造成的?代码如下,大佬帮忙看看:
SELECT pk_id, optime_timestamp, process_time FROM ( SELECT pk_id, process_time, CAST(optime / 1000 AS BIGINT) AS optime_timestamp, ROW_NUMBER() OVER(PARTITION BY pk_id ORDER BY FROM_UNIXTIME(CAST(optime / 1000 AS BIGINT), 'yyyyMMdd') DESC, optime) AS rn FROM tabke_a ) t WHERE rn = 1