从oracle db

时间:2017-11-28 15:51:09

标签: sql oracle greatest-n-per-group

我有以下数据:

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,即上个月最高记录的记录。< / p>

1 个答案:

答案 0 :(得分:2)

您可以使用:

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