获取最高价格的物品的ID

时间:2011-10-12 00:29:47

标签: sql oracle

我有一个包含物品ID和物品价格的表格。我正在运行Oracle。我想得到价格最高的ID(<)。

这适用于MySQL,但不适用于Oracle(为什么不呢??!?)。

SELECT Main.itemid 
  FROM Main 
HAVING MAX(Main.itemprice)

由于我将在另一个嵌套查询中使用它,我需要使用HAVING使其工作。有任何想法吗?谢谢!

BTW,产生此错误:

ORA-00920: invalid relational operator

2 个答案:

答案 0 :(得分:4)

这应该为您提供itemid的独特列表,其中itemprice最大(整个表格):

select itemid
from Main
where itemprice=(select max(itemprice) from Main)
group by itemid;

答案 1 :(得分:2)

修改:使用rank()代替row_number(),现在应该按照要求执行操作:
获取价格最高的所有项。

SELECT itemid
  FROM (
   SELECT itemid
         ,rank() OVER (ORDER BY itemprice DESC) AS rn
     FROM Main)
 WHERE rn = 1;
相关问题