Oracle Analytics窗口功能

时间:2016-04-20 01:19:46

标签: oracle window

如果我有这样的数据:

MyDate    LEVEL
01JAN2016 5.1
02JAN2016 6.2
03JAN2016 8.0
04JAN2016 5.8

如何使用窗口函数返回最高级别的日期? 我在想:

SELECT max(MyDate)over(ORDER BY LEVEL)FROM x

......但它似乎无法奏效。我尝试使用PARTITION BY但仍然没有运气。我真的想要最大(LEVEL)。

2 个答案:

答案 0 :(得分:1)

select mydate, level
from (select mydate, level, row_number() over (order by level desc) rn from x)
where rn = 1

答案 1 :(得分:1)

如果你真的想使用花哨的功能。 。

select max(date) keep (dense_rank first order by level desc)
from x;

然而,很多人会写:

select x.*
from (select x.*
      from x
      order by level desc
     ) x
where rownum = 1;