SQL - 如何在Oracle

时间:2017-08-10 08:52:49

标签: sql oracle

date            value
18/5/2010        40
18/5/2010        20
20/5/2010        60
18/5/2010        30
17/5/2010        10
16/5/2010        40
18/5/2010        60
18/5/2010        25 

输出

date           value
18/5/2010        60
20/5/2010        60

我需要查询具有max(值)的行(即60)。所以,这里我们得到两行。 日期可以按任何顺序

Plz不使用 rownum 子查询  我需要动态查询

3 个答案:

答案 0 :(得分:1)

我相信这是你正在寻找的:

select *
from table
where value = (select max(value) from table);

答案 1 :(得分:0)

select * from (select * from table order by value desc, date_column) where rownum = 1;

更具体地回答这个问题:

select high_val, my_key from (select high_val, my_key from mytable where something = 'avalue' order by high_val desc) where rownum <= 1

答案 2 :(得分:0)

这有效且非常简单:

SELECT MAX(value)
FROM table