小编典典

从oracle db查找第二高的记录

sql

我有以下数据:

id  date    mia

1   1/1/2017    3

1   1/2/2017    1

1   1/3/2017    2

2   1/4/2017    1

2   1/5/2017    4

2   1/6/2017    6

.
.
.
.

等等。

如果我提供输入,id=1则应获取的记录;2017-02-01如果输入,则输入id=2记录,2017-05-01即最高日期的前一个月的记录。


阅读 167

收藏
2021-04-15

共1个答案

小编典典

您可以使用:

SELECT *
FROM (SELECT *, ROW_NUMBER() OVER(PARTITION BY id ORDER BY mia DESC) AS rn
      FROM table) sub
WHERE rn = 2;
2021-04-15