Oracle 分析窗口函数
Posted
技术标签:
【中文标题】Oracle 分析窗口函数【英文标题】:Oracle Analytics Window Function 【发布时间】:2016-04-20 01:19:45 【问题描述】:如果我有这样的数据:
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 但仍然没有运气。我真的想要 max(LEVEL)。
【问题讨论】:
【参考方案1】:select mydate, level
from (select mydate, level, row_number() over (order by level desc) rn from x)
where rn = 1
【讨论】:
【参考方案2】:如果你真的想使用花哨的功能。 . .
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;
【讨论】:
大声笑-猜得好! :-) 我在看到你的帖子后编辑添加了“desc” - 我在问题的第一次阅读中错过了它。以上是关于Oracle 分析窗口函数的主要内容,如果未能解决你的问题,请参考以下文章