假设查询是在静态数据集上运行的,可以使用常规SQL来解决。由于Flink实现了标准SQL,因此该查询不是特定于Flink的,而是可以在任何关系数据库系统上运行。
SELECT DISTINCT t.id, t.name, t.range
FROM t, (SELECT id, MAX(range) AS maxRange FROM t GROUP BY id) s
WHERE t.id = s.id AND t.range = s.maxRange
请注意,如果存在多个具有最大范围的行的ID,则会丢失重复项。