Hi, I find a question on StackOverflow(https://stackoverflow.com/questions/49191326/flink-stream-sql-order-by) about how to get Top-K using Flink SQL, it was written by Fabian. It was backed in 2018. The main idea is using a RANK to get the Top K of filed 'a':
SELECT a, b, c FROM ( SELECT a, b, c, RANK() OVER (ORDER BY a PARTITION BY CEIL(t TO MINUTE) BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as rank FROM yourTable) WHERE rank <= 10 is there better way to get tumbling window Top-K item now? And the wiki on dynamic table may need to update. https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/table/streaming/dynamic_tables.html In the above wiki, I don't know why the query has a field 'lastLogin' SELECT user, RANK() OVER (ORDER BY lastLogin) FROM ( SELECT user, MAX(cTime) AS lastAction FROM clicks GROUP BY user ); Thanks!