请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

FlinkSQL中是否能支持ROW_NUMBER() OVER PARTITION BY操作呢?

FlinkSQL中是否能支持对表中某字段分组排序后添加行号呢?
ROW_NUMBER() OVER ( PARTITION BY user ORDER BY score ASC) AS row_num

看到over后只能添加时间窗口么?
这么写会报错,请教老师是否可以这么实现,要是不行该怎么改呀?

正在回答 回答被采纳积分+3

2回答

Michael_PK 2020-07-03 00:34:16

我刚看了下生产的代码,如果是基于时间窗口去处理的话,是用这个样式的sql

val sql =s"""        |select        |user_id,sum(money),        |hop_start(rowtime,interval '2' SECOND,interval '10' second) as win_start,        |hop_end(rowtime,interval '2' SECOND,interval '10' second) as win_end        |from $TABLE_NAME        |group by        |hop(rowtime,interval '2' second,interval '10' second),        |user_id        |""".stripMargin

0 回复 有任何疑惑可以回复我~
Michael_PK 2020-07-03 00:26:01

这个sql我没有测试过,但是这个sql在hive或者sparksql里面partition by字段之后是可以进行order by字段的,我现在不太确定flink sql是否支持到这个语法了。

0 回复 有任何疑惑可以回复我~
  • 提问者 吼吼16 #1
    嗯呀 我也是在hive表里用过直接挪到flink sql就不好使了,因为不太熟悉 查了下资料也不确定是否是真的不支持~  其实就是单纯的想基于打分score排序来着
    回复 有任何疑惑可以回复我~ 2020-07-03 00:48:19
  • Michael_PK 回复 提问者 吼吼16 #2
    不要把flinkSQL的功能过于想的强大,有些功能还是不能支持的
    回复 有任何疑惑可以回复我~ 2020-07-03 00:52:29
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信