sql - 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 中升序时,它给了我相同的值。我的查询有什么问题?
解决方案
有任何方法可以找到第 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;
您可以从以下参考中寻找其他方法:
推荐阅读
- c++ - 检查编号顺序
- python - 从 xlwings 更改单元格的宽度和高度
- deep-learning - batch_sampler 与 pytorch 数据加载器模块中的采样器有何不同
- python - 在if语句python中检查多个条件的更简单方法
- c# - 同时更新数据库中计数器值的正确方法?
- python - Scrape web pages using python
- python - 如何在 aws lambda 中添加 mecab 库
- node.js - Tsc 与 aws 崩溃
- visual-studio-code - ESLint 不建议在 VS 代码编辑器中进行任何修复
- api - 向 coinGecko API 发出请求时访问被拒绝错误 809