首页 > 解决方案 > ORACLE中如何获得第10高的成本?

问题描述

我有一个表格产品,我有列standard_cost,我想获得位于第 10 位的产品的标准成本。到目前为止我试过

SELECT t1.* 
FROM (SELECT  STANDARD_COST 
      FROM OT.PRODUCTS 
      ORDER BY STANDARD_COST DESC) t1  
WHERE ROWNUM=1 
ORDER BY t1.STANDARD_COST ASC;

但是当我首先对内部查询进行降序排序然后在 ORACLE 中升序时,它给了我相同的值。我的查询有什么问题?

标签: sqloracletop-n

解决方案


有任何方法可以找到第 n 个最高成本。

SELECT T1.STANDARD_COST
FROM (
    SELECT STANDARD_COST, DENSE_RANK() OVER (ORDER BY STANDARD_COST DESC) nth_highest_cost 
    FROM PRODUCTS
) T1
WHERE nth_highest_cost = 10;

您可以从以下参考中寻找其他方法:


推荐阅读