要按第二高值连接(Impala),可以使用子查询和窗口函数来实现。以下是一个示例代码:
SELECT t1.id, t1.value, t2.value AS second_highest
FROM (
SELECT id, value,
ROW_NUMBER() OVER (PARTITION BY id ORDER BY value DESC) AS rn
FROM table_name
) t1
JOIN (
SELECT id, value,
ROW_NUMBER() OVER (PARTITION BY id ORDER BY value DESC) AS rn
FROM table_name
) t2
ON t1.id = t2.id AND t2.rn = 2
WHERE t1.rn = 1;
请将代码中的 table_name
替换为实际的表名。该代码使用两个子查询来获取每个 id
的最高值和第二高值,并通过连接它们来获取结果。在子查询中,使用窗口函数 ROW_NUMBER()
对每个 id
的值进行降序排序,并为每个排序值分配一个行号。然后,我们将第一个子查询的行号设置为 1,第二个子查询的行号设置为 2,并通过连接它们来获取结果。
上一篇:按迭代开始日期排序TFS查询