Sql 组中第二大值

Sql 组中第二大值,sql,group-by,Sql,Group By,我想在每个组中选择第二大值,如何在SQL中做到这一点 例如,在下表中 IDs value ID1 2 ID1 3 ID1 4 ID2 1 ID2 2 ID2 5 按ID分组时,我需要此输出 IDs value ID1 3 ID2 2 谢谢。使用行号: 另一种方法-你可以使用稠密等级 它将确保您的SQL始终返回第二大值,即使您有两个值最大的记录 select t.* from (select t.*, dense_rank() over (partition by id order by va

我想在每个组中选择第二大值,如何在SQL中做到这一点

例如,在下表中

IDs value
ID1 2
ID1 3
ID1 4
ID2 1
ID2 2
ID2 5
按ID分组时,我需要此输出

IDs value
ID1 3
ID2 2
谢谢。

使用行号:


另一种方法-你可以使用稠密等级

它将确保您的SQL始终返回第二大值,即使您有两个值最大的记录

select t.*
from (select t.*, dense_rank() over (partition by id order by value desc) as rrank
      from t
     ) t
where rrank = 2;

你已经试过做什么了?请查看我们需要什么。您可以编辑您的问题,详细说明您遇到的确切问题、您试图解决的问题以及您的相关代码,以便我们提供帮助。
select t.*
from (select t.*, dense_rank() over (partition by id order by value desc) as rrank
      from t
     ) t
where rrank = 2;