1
name   salary
-----   -----
mohan     500
ram      1000
dinesh   5000
hareesh  6000
mallu    7500
manju    7500
praveen 10000
hari    10000

Oracleを使用して、前述の表からn番目に高い給与を見つけるにはどうすればよいですか?

4

16 に答える 16

4
select * 
  from ( select s.*, rank() over (order by salary desc) as rownumber
           from salary )
 where rownumber = nth

「nth」の代わりに給与番号を渡します

于 2013-08-17T06:47:10.307 に答える
3
select * from 
(
    select sal, rank() over (order by sal DESC/ASC) rnk 
    from emp
) 
where rnk = 1/2/3/4/5/6/...;
于 2014-02-24T09:04:17.803 に答える
1

M INT を宣言します。SET M=N-1; SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT M,1;

于 2015-01-14T09:15:07.290 に答える
0

Try out following in Oracle:

SELECT *
FROM
  (SELECT rownum AS rn,
    a.*
  FROM
    (WITH DATA AS -- creating dummy data
    ( SELECT 'MOHAN' AS NAME, 200 AS SALARY FROM DUAL
    UNION ALL
    SELECT 'AKSHAY' AS NAME, 500 AS SALARY FROM DUAL
    UNION ALL
    SELECT 'HARI' AS NAME, 300 AS SALARY FROM DUAL
    UNION ALL
    SELECT 'RAM' AS NAME, 400 AS SALARY FROM DUAL
    )
  SELECT D.* FROM DATA D ORDER BY SALARY DESC
    ) A
  )
WHERE rn = 3; -- specify N'th highest here (In this case fetching 3'rd highest)

Cheers!

于 2016-10-19T04:00:39.977 に答える
0

n 番目に高い給与を取得するには、次のクエリを参照してください。このようにして、あなたは n 番目に高い給与を得ることができます。n 番目に低い給与のみを取得したい場合は、クエリで DESC を ASC に置き換える必要があります。 n番目に高い給与を得るため

于 2014-11-28T08:40:24.407 に答える
0

Sqlサーバー2012以降。Fetch、Offset、Sql サーバー ページについては、このリンクを参照してください。

 Use AdventureWorks /* AdventureWorks 2014 DB*/

Select distinct(CommissionPct) from Sales.SalesPerson
order by CommissionPct desc OffSet 3 Rows Fetch next 1 Rows only

--This for 4Th highest value (N-1)

ここを見て

于 2015-12-06T07:33:51.460 に答える
0

n 番目に高い給与を簡単な方法で選択する

SELECT emp_no, sal
FROM
(
select emp_no, sal, ROW_NUMBER() OVER (order by sal desc) RN 
from emp 
order by sal desc
)
WHERE RN = n;

ここで、n = 必要な n 番目の数値.....

于 2013-11-22T12:53:58.297 に答える
0

グーグルでたくさんのものを見つけることができます

select * 
  from table_name T1 
 where Nth = (select count(distinct (T2.sal)) 
                from table_name T2 
               where T1.sal <= T2.sal )
于 2013-08-17T06:42:18.220 に答える